Rob Pike
bc6bb3efb4
math/big: fix nil bug in GobEncode
...
Update #5305 .
This handles the case where the nil pointers are inside a slice.
A top-level nil pointer is harder, maybe fundamentally broken by gob's model.
Thinking required.
However, a slice is the important case since people don't expect to be sending
top-level nils much, but they can arise easily in slices.
R=golang-dev, josharian, adg
CC=golang-dev
https://golang.org/cl/13042044
2013-08-19 11:22:09 +10:00
Keith Randall
8b789e1738
all: change textflags from numbers to symbols.
...
R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/12774043
2013-08-12 10:25:36 -07:00
Keith Randall
1f7966346e
math: convert textflags from numbers to symbols
...
R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/12773044
2013-08-12 10:25:18 -07:00
Brad Fitzpatrick
d8e27db395
undo CL 12486043 / ab644299d124
...
Uglier.
««« original CL description
all: use strings.IndexByte instead of Index where possible
R=golang-dev, khr
CC=golang-dev
https://golang.org/cl/12486043
»»»
R=golang-dev
CC=golang-dev
https://golang.org/cl/12485044
2013-08-05 16:27:24 -07:00
Brad Fitzpatrick
4c772cda54
all: use strings.IndexByte instead of Index where possible
...
R=golang-dev, khr
CC=golang-dev
https://golang.org/cl/12486043
2013-08-05 15:46:06 -07:00
Robert Griesemer
5bd61e0603
math/big: better documentation for Rat.Float64
...
R=adonovan, r
CC=golang-dev
https://golang.org/cl/11961043
2013-07-29 13:06:34 -07:00
Andrew Gerrand
e97c870692
math/rand: mention that the default Source is thread-safe
...
R=golang-dev, r
CC=golang-dev
https://golang.org/cl/11709043
2013-07-24 08:27:20 +10:00
Andrew Gerrand
6efb6b9e38
math/rand: mention Seed in overview, add another top-level example
...
Fixes #5937 .
R=golang-dev, mirtchovski, r
CC=golang-dev
https://golang.org/cl/11705043
2013-07-23 16:07:28 +10:00
Rob Pike
abe384f68a
all: be more idiomatic when documenting boolean return values.
...
Phrases like "returns whether or not the image is opaque" could be
describing what the function does (it always returns, regardless of
the opacity) or what it returns (a boolean indicating the opacity).
Even when the "or not" is missing, the phrasing is bizarre.
Go with "reports whether", which is still clunky but at least makes
it clear we're talking about the return value.
These were edited by hand. A few were cleaned up in other ways.
R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/11699043
2013-07-23 11:59:49 +10:00
Robert Griesemer
6154ae8e24
math/big: fix Errorf verb
...
Pointed out by go vet.
R=r
CC=golang-dev
https://golang.org/cl/10368048
2013-06-18 14:16:40 -07:00
Adam Langley
133cdb6707
math/big: save some copies in binaryGCD.
...
This patch resulted from a bit of quick optimisation in response to a
golang-nuts post. It looks like one could save a couple other copies in
this function, but this addresses the inner loop and is fairly simple.
benchmark old ns/op new ns/op delta
BenchmarkGCD10x10 1964 1711 -12.88%
BenchmarkGCD10x100 2019 1736 -14.02%
BenchmarkGCD10x1000 2471 2171 -12.14%
BenchmarkGCD10x10000 6040 5778 -4.34%
BenchmarkGCD10x100000 43204 43025 -0.41%
BenchmarkGCD100x100 11004 8520 -22.57%
BenchmarkGCD100x1000 11820 9446 -20.08%
BenchmarkGCD100x10000 23846 21382 -10.33%
BenchmarkGCD100x100000 133691 131505 -1.64%
BenchmarkGCD1000x1000 120041 95591 -20.37%
BenchmarkGCD1000x10000 136887 113600 -17.01%
BenchmarkGCD1000x100000 295370 273912 -7.26%
BenchmarkGCD10000x10000 2556126 2205198 -13.73%
BenchmarkGCD10000x100000 3159512 2808038 -11.12%
BenchmarkGCD100000x100000 150543094 139986045 -7.01%
R=gri, remyoudompheng
CC=bradfitz, gobot, golang-dev, gri
https://golang.org/cl/9424043
2013-05-15 10:03:22 -04:00
Brad Fitzpatrick
e9546a01dc
math/rand: fix typo and add better crash message
...
R=golang-dev, r
CC=golang-dev
https://golang.org/cl/9000043
2013-04-27 18:50:38 -07:00
Robert Griesemer
1b37ba931f
math/big: minor cleanups
...
- comment fixes
- s/z/x/ in (*rat).Float64 to match convention for functions
returning a non-*Rat
- minor test output tweaking
R=golang-dev, r
CC=golang-dev
https://golang.org/cl/8327044
2013-04-03 13:24:32 -07:00
Russ Cox
60a1f54d6b
math: make Hypot special cases look like others
...
The edit makes Hypot's description match the form
used in the other routines in this package.
R=golang-dev, iant
CC=golang-dev
https://golang.org/cl/8003046
2013-03-25 17:01:40 -04:00
Oling Cat
1693e14bc4
math: modify a comment to the convention format.
...
R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/8012043
2013-03-25 08:43:51 -07:00
Russ Cox
f6d0adedb6
build: remove dead code
...
R=golang-dev, r
CC=golang-dev
https://golang.org/cl/7877045
2013-03-22 17:28:22 -04:00
Russ Cox
07720b67b3
build: update assembly variable names for vet
...
R=golang-dev, r
CC=golang-dev
https://golang.org/cl/7834046
2013-03-22 12:57:55 -04:00
Oling Cat
79ae1ad489
math: remove repeated comment.
...
R=golang-dev, nigeltao
CC=golang-dev
https://golang.org/cl/7835046
2013-03-22 14:54:20 +11:00
Brad Fitzpatrick
e15c0ac693
all: remove now-unnecessary unreachable panics
...
Take advantage of the new terminating statement rule.
R=golang-dev, r, gri
CC=golang-dev
https://golang.org/cl/7712044
2013-03-11 14:16:55 -07:00
Russ Cox
65ed3f1073
math/big: fix comment
...
The variable is named b not bit.
R=golang-dev, agl
CC=golang-dev
https://golang.org/cl/7699043
2013-03-11 10:20:33 -04:00
Rob Pike
1bf66f081f
all: fix a few more printf arg bugs found by go vet
...
R=golang-dev, iant
CC=golang-dev
https://golang.org/cl/7413045
2013-02-28 11:33:08 -08:00
Alan Donovan
19bb42d637
math/big: make tests faster by reducing coverage in --test.short mode.
...
The time to test all of math/big is now:
default => ~3min
--test.short => 150ms
R=rsc
CC=golang-dev
https://golang.org/cl/7223054
2013-01-30 18:19:58 -05:00
Alan Donovan
961195ae69
math/big: add Rat.{,Set}Float64 methods for IEEE 754 conversions.
...
Added tests, using input data from strconv.ParseFloat.
Thanks to rsc for most of the test code.
math/big could use some good package-level documentation.
R=remyoudompheng, rsc
CC=golang-dev
https://golang.org/cl/6930059
2013-01-28 18:00:15 -05:00
Russ Cox
92b2643c92
math/big: fix typo
...
Fixes #4678 .
TBR=gri
CC=golang-dev
https://golang.org/cl/7135059
2013-01-18 17:30:34 -05:00
Matthew Dempsky
46811d27ce
src: Use bytes.Equal instead of bytes.Compare where possible.
...
bytes.Equal is simpler to read and should also be faster because
of short-circuiting and assembly implementations.
Change generated automatically using:
gofmt -r 'bytes.Compare(a, b) == 0 -> bytes.Equal(a, b)'
gofmt -r 'bytes.Compare(a, b) != 0 -> !bytes.Equal(a, b)'
R=golang-dev, dave, adg, rsc
CC=golang-dev
https://golang.org/cl/7038051
2013-01-07 10:03:49 +11:00
Russ Cox
a3677b5f22
math: handle exponent separately in Log2
...
This guarantees that powers of two return exact answers.
We could do a multiprecision approximation for the
rest of the answer too, but this seems like it should be
good enough.
Fixes #4567 .
R=golang-dev, iant, remyoudompheng
CC=golang-dev
https://golang.org/cl/6943074
2012-12-20 12:23:27 -05:00
Shenghou Ma
d1ef9b56fb
all: fix typos
...
caught by https://github.com/lyda/misspell-check .
R=golang-dev, gri
CC=golang-dev
https://golang.org/cl/6949072
2012-12-19 03:04:09 +08:00
Luit van Drongelen
f4fc163d17
math/big: add SetUint64 and Uint64 functions to *Int
...
Implementation is mostly identical to passing a non-negative int64 to
SetInt64, and calling Int64 with a non-negative value in the *Int.
Fixes #4389 .
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6929048
2012-12-11 12:19:10 -05:00
David Symonds
ec45952670
math/rand: fix typo in example comment.
...
R=golang-dev, iant
CC=golang-dev
https://golang.org/cl/6901056
2012-12-08 19:20:38 +11:00
Russ Cox
b99161e41f
math/rand: add example / regression test
...
This makes sure the outputs do not change for a fixed seed.
See also https://golang.org/cl/6905049 .
R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6907048
2012-12-07 11:58:59 -05:00
Russ Cox
ff2534e076
undo CL 6845121 / 79603a5e4cda
...
This changes the output of
rand.Seed(0)
perm := rand.Perm(100)
When giving the same seeds to Go 1.0 and Go 1.1 programs
I would like them to generate the same random numbers.
««« original CL description
math/rand: remove noop iteration in Perm
The first iteration always do `m[0], m[0] = m[0], m[0]`, because
`rand.Intn(1)` is 0.
fun note: IIRC in TAOCP version of this algorithm, `i` goes
backward (n-1->1), meaning that the "already" shuffled part of the
array is never altered betweens iterations, while in the current
implementation the "not-yet" shuffled part of the array is
conserved between iterations.
R=golang-dev
CC=golang-dev
https://golang.org/cl/6845121
»»»
R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6905049
2012-12-07 11:58:44 -05:00
Johan Euphrosine
d7b0f2a524
math/rand: remove noop iteration in Perm
...
The first iteration always do `m[0], m[0] = m[0], m[0]`, because
`rand.Intn(1)` is 0.
fun note: IIRC in TAOCP version of this algorithm, `i` goes
backward (n-1->1), meaning that the "already" shuffled part of the
array is never altered betweens iterations, while in the current
implementation the "not-yet" shuffled part of the array is
conserved between iterations.
R=golang-dev
CC=golang-dev
https://golang.org/cl/6845121
2012-12-01 14:11:46 -08:00
Shenghou Ma
9e30b708a1
all: set GOMAXPROCS to 1 when counting mallocs
...
also fix an annoying test that relies on $GOROOT be set.
Fixes #3690 .
R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6844086
2012-12-01 00:38:01 +08:00
Robert Griesemer
465b9c35e5
gofmt: apply gofmt -w src misc
...
Remove trailing whitespace in comments.
No other changes.
R=r
CC=golang-dev
https://golang.org/cl/6815053
2012-10-30 13:38:01 -07:00
Adam Langley
73f11171b4
math/big: add 4-bit, fixed window exponentiation.
...
A 4-bit window is convenient because 4 divides both 32 and 64,
therefore we never have a window spanning words of the exponent.
Additionaly, the benefit of a 5-bit window is only 2.6% at 1024-bits
and 3.3% at 2048-bits.
This code is still not constant time, however.
benchmark old ns/op new ns/op delta
BenchmarkRSA2048Decrypt 17108590 11180370 -34.65%
Benchmark3PrimeRSA2048Decrypt 13003720 7680390 -40.94%
R=gri
CC=golang-dev
https://golang.org/cl/6716048
2012-10-17 11:19:26 -04:00
Robert Griesemer
7565726875
math/big: fix big.Exp and document better
...
- always return 1 for y <= 0
- document that the sign of m is ignored
- protect against div-0 panics by treating
m == 0 the same way as m == nil
- added extra tests
Fixes #4239 .
R=agl, remyoudompheng, agl
CC=golang-dev
https://golang.org/cl/6724046
2012-10-16 13:46:27 -07:00
Robert Griesemer
4bee88d45f
math/big: more conservative use of lock for divisor table
...
Minor performance impact running sequentially:
benchmark old ns/op new ns/op delta
BenchmarkString10Base2 389 391 +0.51%
BenchmarkString100Base2 1530 1534 +0.26%
BenchmarkString1000Base2 11789 11787 -0.02%
BenchmarkString10000Base2 111443 112030 +0.53%
BenchmarkString100000Base2 1017483 1015347 -0.21%
BenchmarkString10Base8 339 344 +1.47%
BenchmarkString100Base8 753 756 +0.40%
BenchmarkString1000Base8 4618 4641 +0.50%
BenchmarkString10000Base8 43217 43534 +0.73%
BenchmarkString100000Base8 397518 400602 +0.78%
BenchmarkString10Base10 630 630 +0.00%
BenchmarkString100Base10 1975 1960 -0.76%
BenchmarkString1000Base10 10179 10174 -0.05%
BenchmarkString10000Base10 44527 44416 -0.25%
BenchmarkString100000Base10 14404694 14425308 +0.14%
BenchmarkString10Base16 283 288 +1.77%
BenchmarkString100Base16 597 598 +0.17%
BenchmarkString1000Base16 3189 3186 -0.09%
BenchmarkString10000Base16 29403 29364 -0.13%
BenchmarkString100000Base16 265657 265587 -0.03%
Note that due to other improvements (faster assembly routines,
better code generation by compiler), these benchmarks now run
up to 37% faster than they used to at the last time measured (1/9/2012).
Minor performance impact for StringPiParallel running in parallel:
Current CL but with Lock/Unlock commented out (removed):
BenchmarkStringPiParallel 5000 343581 ns/op
BenchmarkStringPiParallel-2 10000 184511 ns/op
BenchmarkStringPiParallel-3 10000 129768 ns/op
BenchmarkStringPiParallel-4 10000 102326 ns/op
Current CL:
BenchmarkStringPiParallel 5000 345169 ns/op
BenchmarkStringPiParallel-2 10000 185827 ns/op
BenchmarkStringPiParallel-3 10000 131168 ns/op
BenchmarkStringPiParallel-4 10000 102353 ns/op
Fixes #4218 .
R=dvyukov, michael.jones, dave
CC=golang-dev
https://golang.org/cl/6643053
2012-10-11 16:04:03 -07:00
Adam Langley
9070d5759f
math/big: avoid some allocation in Exp
...
benchmark old ns/op new ns/op delta
BenchmarkRSA1024Decrypt 745686 644964 -13.51%
BenchmarkRSA2048Decrypt 5517318 5049200 -8.48%
Benchmark3PrimeRSA2048Decrypt 3767386 3288048 -12.72%
R=gri
CC=gobot, golang-dev
https://golang.org/cl/6566043
2012-10-01 17:31:35 -04:00
Russ Cox
10ea6519e4
build: make int 64 bits on amd64
...
The assembly offsets were converted mechanically using
code.google.com/p/rsc/cmd/asmlint. The instruction
changes were done by hand.
Fixes #2188 .
R=iant, r, bradfitz, remyoudompheng
CC=golang-dev
https://golang.org/cl/6550058
2012-09-24 20:57:01 -04:00
Russ Cox
8572950383
all: match asm variable names to Go func declarations
...
R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6548046
2012-09-21 00:35:56 -04:00
Charles L. Dorian
0f8f5d2140
math: Faster Tanh
...
From 159 to 47.6 ns/op; slightly more accurate.
R=rsc, golang-dev, mtj, dave, remyoudompheng
CC=golang-dev
https://golang.org/cl/6500121
2012-09-17 17:18:16 -04:00
Christopher Swenson
baf426f10f
math/big: Replace RCLQ + ANDQ with SETCS in unrolled arithmetic assembly.
...
benchmark old ns/op new ns/op delta
BenchmarkAddVW_1 8 8 +0.60%
BenchmarkAddVW_2 10 9 -8.64%
BenchmarkAddVW_3 10 10 -4.63%
BenchmarkAddVW_4 10 11 +3.67%
BenchmarkAddVW_5 11 12 +5.98%
BenchmarkAddVW_1e1 18 20 +6.38%
BenchmarkAddVW_1e2 129 115 -10.85%
BenchmarkAddVW_1e3 1270 1089 -14.25%
BenchmarkAddVW_1e4 13376 12145 -9.20%
BenchmarkAddVW_1e5 130392 125260 -3.94%
benchmark old MB/s new MB/s speedup
BenchmarkAddVW_1 7709.10 7661.92 0.99x
BenchmarkAddVW_2 12451.10 13604.00 1.09x
BenchmarkAddVW_3 17727.81 18721.54 1.06x
BenchmarkAddVW_4 23552.64 22708.81 0.96x
BenchmarkAddVW_5 27411.40 25816.22 0.94x
BenchmarkAddVW_1e1 34063.19 32023.06 0.94x
BenchmarkAddVW_1e2 49529.97 55360.55 1.12x
BenchmarkAddVW_1e3 50380.44 58764.18 1.17x
BenchmarkAddVW_1e4 47843.59 52696.10 1.10x
BenchmarkAddVW_1e5 49082.60 51093.66 1.04x
R=gri, rsc, r
CC=golang-dev
https://golang.org/cl/6480063
2012-08-28 09:29:45 -07:00
Robert Griesemer
74c6325142
math/big: fix broken comment
...
R=iant, iant
CC=golang-dev
https://golang.org/cl/6485064
2012-08-24 13:50:09 -07:00
Robert Griesemer
3bd8684fac
math/big: minor tweaks to assembly code (slightly better performance)
...
Benchmarks run on 2.8GHz Quad-Code Intel Xeon,
4GB 800MHz DDR2 FB-DIMM ("PowerMac").
benchmark old ns/op new ns/op delta
BenchmarkAddVV_1 7 7 -0.82%
BenchmarkAddVV_2 8 8 -3.46%
BenchmarkAddVV_3 10 9 -4.81%
BenchmarkAddVV_4 9 9 -1.89%
BenchmarkAddVV_5 11 10 -5.22%
BenchmarkAddVV_1e1 17 18 +4.05%
BenchmarkAddVV_1e2 117 115 -1.71%
BenchmarkAddVV_1e3 1095 1090 -0.46%
BenchmarkAddVV_1e4 13149 12679 -3.57%
BenchmarkAddVV_1e5 135133 129482 -4.18%
BenchmarkAddVW_1 6 6 -1.14%
BenchmarkAddVW_2 7 7 +3.78%
BenchmarkAddVW_3 8 8 +0.12%
BenchmarkAddVW_4 8 8 -6.52%
BenchmarkAddVW_5 9 8 -3.70%
BenchmarkAddVW_1e1 14 13 -4.29%
BenchmarkAddVW_1e2 97 96 -1.33%
BenchmarkAddVW_1e3 953 940 -1.36%
BenchmarkAddVW_1e4 9776 9527 -2.55%
BenchmarkAddVW_1e5 102396 97738 -4.55%
benchmark old MB/s new MB/s speedup
BenchmarkAddVV_1 8702.84 8774.56 1.01x
BenchmarkAddVV_2 14739.60 15277.82 1.04x
BenchmarkAddVV_3 18375.37 19398.16 1.06x
BenchmarkAddVV_4 26935.44 27464.68 1.02x
BenchmarkAddVV_5 27754.04 29423.30 1.06x
BenchmarkAddVV_1e1 37050.89 35629.72 0.96x
BenchmarkAddVV_1e2 54289.15 55533.24 1.02x
BenchmarkAddVV_1e3 58428.83 58682.53 1.00x
BenchmarkAddVV_1e4 48670.55 50475.99 1.04x
BenchmarkAddVV_1e5 47360.54 49427.66 1.04x
BenchmarkAddVW_1 10397.27 10502.23 1.01x
BenchmarkAddVW_2 17279.03 16654.13 0.96x
BenchmarkAddVW_3 23858.39 23825.89 1.00x
BenchmarkAddVW_4 29799.42 31895.06 1.07x
BenchmarkAddVW_5 34781.83 36105.11 1.04x
BenchmarkAddVW_1e1 45629.88 47597.42 1.04x
BenchmarkAddVW_1e2 65341.93 66240.04 1.01x
BenchmarkAddVW_1e3 67153.67 68069.83 1.01x
BenchmarkAddVW_1e4 65464.60 67173.83 1.03x
BenchmarkAddVW_1e5 62501.88 65480.66 1.05x
R=iant
CC=golang-dev
https://golang.org/cl/6484056
2012-08-24 10:51:39 -07:00
Robert Griesemer
35422bc11f
math/big: faster (add|sub)V(V|W) routines
...
Benchmarks run on 3.06GHz Intel Core 2 Duo,
4GB 800MHz DDR2 SDRAM ("iMac").
benchmark old ns/op new ns/op delta
BenchmarkAddVV_1 6 6 +2.75%
BenchmarkAddVV_2 9 7 -19.71%
BenchmarkAddVV_3 9 9 +2.25%
BenchmarkAddVV_4 10 8 -20.46%
BenchmarkAddVV_5 12 10 -19.53%
BenchmarkAddVV_1e1 23 15 -32.48%
BenchmarkAddVV_1e2 213 107 -49.77%
BenchmarkAddVV_1e3 2088 993 -52.44%
BenchmarkAddVV_1e4 20874 12027 -42.38%
BenchmarkAddVV_1e5 209858 121480 -42.11%
BenchmarkAddVW_1 5 5 +0.90%
BenchmarkAddVW_2 11 11 -3.51%
BenchmarkAddVW_3 7 7 -0.27%
BenchmarkAddVW_4 8 7 -6.32%
BenchmarkAddVW_5 9 8 -10.89%
BenchmarkAddVW_1e1 17 12 -26.01%
BenchmarkAddVW_1e2 155 89 -42.32%
BenchmarkAddVW_1e3 1479 873 -40.97%
BenchmarkAddVW_1e4 13838 8764 -36.67%
BenchmarkAddVW_1e5 147353 89560 -39.22%
benchmark old MB/s new MB/s speedup
BenchmarkAddVV_1 9765.57 9508.55 0.97x
BenchmarkAddVV_2 13077.63 16284.97 1.25x
BenchmarkAddVV_3 20599.58 20156.67 0.98x
BenchmarkAddVV_4 23591.58 29516.02 1.25x
BenchmarkAddVV_5 24920.95 31194.10 1.25x
BenchmarkAddVV_1e1 27393.76 40621.71 1.48x
BenchmarkAddVV_1e2 29911.96 59592.99 1.99x
BenchmarkAddVV_1e3 30650.73 64429.84 2.10x
BenchmarkAddVV_1e4 30660.09 53213.08 1.74x
BenchmarkAddVV_1e5 30496.74 52683.46 1.73x
BenchmarkAddVW_1 11503.39 11405.98 0.99x
BenchmarkAddVW_2 11203.56 11586.92 1.03x
BenchmarkAddVW_3 26173.45 26224.75 1.00x
BenchmarkAddVW_4 30560.30 32621.94 1.07x
BenchmarkAddVW_5 33183.81 37269.94 1.12x
BenchmarkAddVW_1e1 36991.75 50098.53 1.35x
BenchmarkAddVW_1e2 41087.14 71549.93 1.74x
BenchmarkAddVW_1e3 43266.42 73279.83 1.69x
BenchmarkAddVW_1e4 46246.74 73021.97 1.58x
BenchmarkAddVW_1e5 43433.00 71459.96 1.65x
Benchmarks run on 2.8GHz Quad-Code Intel Xeon,
4GB 800MHz DDR2 FB-DIMM ("PowerMac").
benchmark old ns/op new ns/op delta
BenchmarkAddVV_1 7 7 +2.51%
BenchmarkAddVV_2 8 8 +3.70%
BenchmarkAddVV_3 10 10 +4.00%
BenchmarkAddVV_4 11 9 -19.49%
BenchmarkAddVV_5 14 11 -18.44%
BenchmarkAddVV_1e1 23 17 -27.00%
BenchmarkAddVV_1e2 234 117 -50.00%
BenchmarkAddVV_1e3 2284 1095 -52.06%
BenchmarkAddVV_1e4 22906 13149 -42.60%
BenchmarkAddVV_1e5 229860 135133 -41.21%
BenchmarkAddVW_1 6 6 +1.15%
BenchmarkAddVW_2 7 7 +1.37%
BenchmarkAddVW_3 7 8 +1.00%
BenchmarkAddVW_4 9 8 -6.93%
BenchmarkAddVW_5 10 9 -13.21%
BenchmarkAddVW_1e1 18 14 -24.32%
BenchmarkAddVW_1e2 170 97 -42.41%
BenchmarkAddVW_1e3 1619 953 -41.14%
BenchmarkAddVW_1e4 15142 9776 -35.44%
BenchmarkAddVW_1e5 160835 102396 -36.33%
benchmark old MB/s new MB/s speedup
BenchmarkAddVV_1 8928.95 8702.84 0.97x
BenchmarkAddVV_2 15298.84 14739.60 0.96x
BenchmarkAddVV_3 19116.52 18375.37 0.96x
BenchmarkAddVV_4 21644.30 26935.44 1.24x
BenchmarkAddVV_5 22771.64 27754.04 1.22x
BenchmarkAddVV_1e1 27017.62 37050.89 1.37x
BenchmarkAddVV_1e2 27326.09 54289.15 1.99x
BenchmarkAddVV_1e3 28016.84 58428.83 2.09x
BenchmarkAddVV_1e4 27939.38 48670.55 1.74x
BenchmarkAddVV_1e5 27843.00 47360.54 1.70x
BenchmarkAddVW_1 10510.97 10397.27 0.99x
BenchmarkAddVW_2 17499.71 17279.03 0.99x
BenchmarkAddVW_3 24093.93 23858.39 0.99x
BenchmarkAddVW_4 27733.08 29799.42 1.07x
BenchmarkAddVW_5 30267.17 34781.83 1.15x
BenchmarkAddVW_1e1 34566.78 45629.88 1.32x
BenchmarkAddVW_1e2 37521.89 65341.93 1.74x
BenchmarkAddVW_1e3 39513.18 67153.67 1.70x
BenchmarkAddVW_1e4 42263.80 65464.60 1.55x
BenchmarkAddVW_1e5 39792.21 62501.88 1.57x
R=iant, remyoudompheng, nightlyone, minux.ma
CC=golang-dev
https://golang.org/cl/6482062
2012-08-24 09:20:44 -07:00
Robert Griesemer
053b448d61
math/big: added benchmarks to establish baseline for core functions
...
BenchmarkAddVV_1 500000000 7.24 ns/op 8844.11 MB/s
BenchmarkAddVV_2 100000000 10.4 ns/op 12290.41 MB/s
BenchmarkAddVV_3 100000000 10.7 ns/op 17966.58 MB/s
BenchmarkAddVV_4 100000000 12.3 ns/op 20848.67 MB/s
BenchmarkAddVV_5 100000000 14.5 ns/op 21993.82 MB/s
BenchmarkAddVV_1e1 100000000 24.0 ns/op 26720.65 MB/s
BenchmarkAddVV_1e2 10000000 246 ns/op 26014.58 MB/s
BenchmarkAddVV_1e3 1000000 2416 ns/op 26485.06 MB/s
BenchmarkAddVV_1e4 100000 23874 ns/op 26806.36 MB/s
BenchmarkAddVV_1e5 10000 241155 ns/op 26538.87 MB/s
BenchmarkAddVW_1 500000000 6.12 ns/op 10461.91 MB/s
BenchmarkAddVW_2 200000000 11.0 ns/op 11596.63 MB/s
BenchmarkAddVW_3 200000000 8.97 ns/op 21409.82 MB/s
BenchmarkAddVW_4 100000000 10.8 ns/op 23696.72 MB/s
BenchmarkAddVW_5 100000000 12.5 ns/op 25524.88 MB/s
BenchmarkAddVW_1e1 100000000 21.5 ns/op 29786.32 MB/s
BenchmarkAddVW_1e2 10000000 168 ns/op 37925.36 MB/s
BenchmarkAddVW_1e3 1000000 1658 ns/op 38579.15 MB/s
BenchmarkAddVW_1e4 100000 16492 ns/op 38805.85 MB/s
BenchmarkAddVW_1e5 10000 172155 ns/op 37175.69 MB/s
BenchmarkAddMulVVW_1 100000000 12.9 ns/op 4968.49 MB/s
BenchmarkAddMulVVW_2 100000000 15.5 ns/op 8279.42 MB/s
BenchmarkAddMulVVW_3 100000000 13.4 ns/op 14340.53 MB/s
BenchmarkAddMulVVW_4 100000000 15.8 ns/op 16194.94 MB/s
BenchmarkAddMulVVW_5 100000000 18.9 ns/op 16906.61 MB/s
BenchmarkAddMulVVW_1e1 50000000 32.3 ns/op 19838.35 MB/s
BenchmarkAddMulVVW_1e2 10000000 285 ns/op 22427.28 MB/s
BenchmarkAddMulVVW_1e3 1000000 2777 ns/op 23040.42 MB/s
BenchmarkAddMulVVW_1e4 100000 27901 ns/op 22938.01 MB/s
BenchmarkAddMulVVW_1e5 10000 281087 ns/op 22768.73 MB/s
R=r
CC=golang-dev
https://golang.org/cl/6478055
2012-08-23 15:56:14 -07:00
Charles L. Dorian
a5c4e0fa2a
math: update definition of NaN in assembly language files
...
R=rsc, minux.ma, golang-dev, nigeltao
CC=golang-dev
https://golang.org/cl/6461047
2012-08-09 09:40:05 +10:00
Shenghou Ma
6e9506a7b4
math, runtime: use a NaN that matches gcc's
...
our old choice is not working properly at least on VFPv2 in
ARM1136JF-S (it's not preserved across float64->float32 conversions).
Fixes #3745 .
R=dave, rsc
CC=golang-dev
https://golang.org/cl/6344078
2012-08-07 09:57:14 +08:00
Robert Griesemer
6a135a0894
mat/big: more optimal Karatsuba threshold
...
benchmark old ns/op new ns/op delta
BenchmarkHilbert 6253043 6267289 +0.23%
BenchmarkMul 45355940 39490633 -12.93%
R=r
CC=golang-dev
https://golang.org/cl/6355104
2012-07-12 14:19:09 -07:00
Robert Griesemer
98ca655919
math/big: minor performance tuning
...
Reuse temporary slice to avoid extra allocations
(originally done correctly by remyoudompheng@gmail.com
in https://golang.org/cl/6345075/ ).
benchmark old ns/op new ns/op delta
BenchmarkHilbert 6252790 6262304 +0.15%
BenchmarkMul 45827438 45301002 -1.15%
R=r
CC=golang-dev
https://golang.org/cl/6346097
2012-07-12 14:12:50 -07:00