In abs.go and copysign.go, magic numbers and local constants are
used for the sign bit mask (1 << 63), even though a shared constant
signMask already exists in bits.go.
Change-Id: Ic3aeb9b52674538443cbe074acfeb373a3c74a8e
Reviewed-on: https://go-review.googlesource.com/c/go/+/732060
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Robert Griesemer <gri@google.com>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Reviewed-by: Robert Griesemer <gri@google.com>
// Abs(±Inf) = +Inf
// Abs(NaN) = NaN
func Abs(x float64) float64 {
- return Float64frombits(Float64bits(x) &^ (1 << 63))
+ return Float64frombits(Float64bits(x) &^ signMask)
}
// Copysign returns a value with the magnitude of f
// and the sign of sign.
func Copysign(f, sign float64) float64 {
- const signBit = 1 << 63
- return Float64frombits(Float64bits(f)&^signBit | Float64bits(sign)&signBit)
+ return Float64frombits(Float64bits(f)&^signMask | Float64bits(sign)&signMask)
}