math: use shared signMask constant

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>
This commit is contained in:
mohanson 2025-12-23 10:44:51 +08:00 committed by Gopher Robot
parent 84c8483e02
commit 23f7ba554d
2 changed files with 2 additions and 3 deletions

View file

@ -11,5 +11,5 @@ package math
// Abs(±Inf) = +Inf
// Abs(NaN) = NaN
func Abs(x float64) float64 {
return Float64frombits(Float64bits(x) &^ (1 << 63))
return Float64frombits(Float64bits(x) &^ signMask)
}

View file

@ -7,6 +7,5 @@ package math
// 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)
}