]> Cypherpunks repositories - gostls13.git/commit
math/bits: faster OnesCount using table lookups for sizes 8,16,32
authorRobert Griesemer <gri@golang.org>
Tue, 28 Feb 2017 18:09:44 +0000 (10:09 -0800)
committerRobert Griesemer <gri@golang.org>
Tue, 28 Feb 2017 20:54:49 +0000 (20:54 +0000)
commitd7a659b11b9ab9132fd4302ffe9250b30bbe431e
tree04d902300dce67ae9f37f96fbd8b3074b9fd50e2
parent064e44f218f62247e894733d861208257102b0eb
math/bits: faster OnesCount using table lookups for sizes 8,16,32

For uint64, the existing algorithm is faster.

benchmark                  old ns/op     new ns/op     delta
BenchmarkOnesCount8-8      1.95          0.97          -50.26%
BenchmarkOnesCount16-8     2.54          1.39          -45.28%
BenchmarkOnesCount32-8     2.61          1.96          -24.90%

Measured on 2.3 GHz Intel Core i7 running macOS 10.12.3.

Change-Id: I6cc42882fef3d24694720464039161e339a9ae99
Reviewed-on: https://go-review.googlesource.com/37580
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/math/bits/bits.go
src/math/bits/bits_tables.go
src/math/bits/make_tables.go