-
Notifications
You must be signed in to change notification settings - Fork 77
Open
Description
func (z *Int) Float64() float64 {
var bitlen uint64
switch {
case z[3] != 0:
bitlen = uint64(bits.Len64(z[3])) - 1
return math.Float64frombits((1023+192+bitlen)<<52 | ((z[3]<<(64-bitlen))|(z[2]>>bitlen))>>12)
case z[2] != 0:
bitlen = uint64(bits.Len64(z[2])) - 1
return math.Float64frombits((1023+128+bitlen)<<52 | ((z[2]<<(64-bitlen))|(z[1]>>bitlen))>>12)
case z[1] != 0:
bitlen = uint64(bits.Len64(z[1])) - 1
return math.Float64frombits((1023+64+bitlen)<<52 | ((z[1]<<(64-bitlen))|(z[0]>>bitlen))>>12)
default:
return float64(z[0])
}
}BenchmarkFloat64
BenchmarkFloat64-8 337167862 3.267 ns/op
BenchmarkFloat64Fast
BenchmarkFloat64Fast-8 737007931 1.708 ns/op
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels