]> Cypherpunks repositories - gostls13.git/commit
math/bits: faster OnesCount
authorRobert Griesemer <gri@golang.org>
Sat, 18 Feb 2017 19:14:35 +0000 (11:14 -0800)
committerRobert Griesemer <gri@golang.org>
Sun, 19 Feb 2017 18:50:48 +0000 (18:50 +0000)
commit177dfba1120d2d5976bb5fb5a68bf20bb6ca9ada
treec370d8bd9c6d7fb2db3e49707b5c73a0854d676e
parentd9a19f86fb5297aee62242ad14b6a69d2c990a79
math/bits: faster OnesCount

Using some additional suggestions per "Hacker's Delight".
Added documentation and extra tests.

Measured on 1.7 GHz Intel Core i7, running macOS 10.12.3.

benchmark                  old ns/op     new ns/op     delta
BenchmarkOnesCount-4       7.34          5.38          -26.70%
BenchmarkOnesCount8-4      2.03          1.98          -2.46%
BenchmarkOnesCount16-4     2.56          2.50          -2.34%
BenchmarkOnesCount32-4     2.98          2.39          -19.80%
BenchmarkOnesCount64-4     4.22          2.96          -29.86%

Change-Id: I566b0ef766e55cf5776b1662b6016024ebe5d878
Reviewed-on: https://go-review.googlesource.com/37223
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
src/math/bits/bits.go
src/math/bits/bits_test.go