Commit 497d2417 authored by Plekhanov Maxim's avatar Plekhanov Maxim Committed by Brad Fitzpatrick

math: use Abs in Mod rather than if x < 0 { x = -x}

goos: linux
goarch: amd64
pkg: math

name  old time/op  new time/op  delta
Mod   64.7ns ± 2%  63.7ns ± 2%  -1.52%  (p=0.003 n=8+10)

Change-Id: I851bec0fd6c223dab73e4a680b7393d49e81a0e8
Reviewed-on: https://go-review.googlesource.com/c/85095Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
parent f22c357a
......@@ -24,16 +24,12 @@ func mod(x, y float64) float64 {
if y == 0 || IsInf(x, 0) || IsNaN(x) || IsNaN(y) {
return NaN()
}
if y < 0 {
y = -y
}
y = Abs(y)
yfr, yexp := Frexp(y)
sign := false
r := x
if x < 0 {
r = -x
sign = true
}
for r >= y {
......@@ -43,7 +39,7 @@ func mod(x, y float64) float64 {
}
r = r - Ldexp(y, rexp-yexp)
}
if sign {
if x < 0 {
r = -r
}
return r
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment