Use Go 1.9 math/bits implementation for counting leading / trailing zeros

This commit is contained in:
Daniel Swarbrick 2017-11-08 23:18:33 +01:00
parent 7337c6a513
commit 0585ab3fcd

View file

@ -46,8 +46,7 @@ package chunks
import ( import (
"encoding/binary" "encoding/binary"
"math" "math"
"math/bits"
bits "github.com/dgryski/go-bits"
) )
// XORChunk holds XOR encoded sample data. // XORChunk holds XOR encoded sample data.
@ -197,8 +196,8 @@ func (a *xorAppender) writeVDelta(v float64) {
} }
a.b.writeBit(one) a.b.writeBit(one)
leading := uint8(bits.Clz(vDelta)) leading := uint8(bits.LeadingZeros64(vDelta))
trailing := uint8(bits.Ctz(vDelta)) trailing := uint8(bits.TrailingZeros64(vDelta))
// Clamp number of leading zeros to avoid overflow when encoding. // Clamp number of leading zeros to avoid overflow when encoding.
if leading >= 32 { if leading >= 32 {