aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Griesemer <gri@golang.org>2010-04-27 14:06:53 -0700
committerRobert Griesemer <gri@golang.org>2010-04-27 14:06:53 -0700
commit2f480b10e2a638e1e52f7c90479925b258f720c8 (patch)
tree16bfd82ae56d5fe20023e718d51a25b5fc5873ad
parente42ebea96c8866e85903e9d184c0b3868dfcadfa (diff)
downloadgo-2f480b10e2a638e1e52f7c90479925b258f720c8.tar.gz
go-2f480b10e2a638e1e52f7c90479925b258f720c8.zip
pidigits: ~10% performance win by using adds instead of shifts
user time for pidigits -s -n=10000: 6.466s w/ adds 7.138s w/ shifts R=rsc CC=golang-dev https://golang.org/cl/1021041
-rw-r--r--test/bench/pidigits.go4
1 files changed, 2 insertions, 2 deletions
diff --git a/test/bench/pidigits.go b/test/bench/pidigits.go
index a05515028a..3e455dc838 100644
--- a/test/bench/pidigits.go
+++ b/test/bench/pidigits.go
@@ -63,7 +63,7 @@ func extract_digit() int64 {
}
// Compute (numer * 3 + accum) / denom
- tmp1.Lsh(numer, 1)
+ tmp1.Add(numer, numer) // tmp1.Lsh(numer, 1)
tmp1.Add(tmp1, numer)
tmp1.Add(tmp1, accum)
tmp1.DivMod(tmp1, denom, tmp2)
@@ -84,7 +84,7 @@ func next_term(k int64) {
y2.New(k*2 + 1)
bigk.New(k)
- tmp1.Lsh(numer, 1)
+ tmp1.Add(numer, numer) // tmp1.Lsh(numer, 1)
accum.Add(accum, tmp1)
accum.Mul(accum, y2)
numer.Mul(numer, bigk)