mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
move math routines from package sys to package math,
though they still build in src/runtime. use cgo instead of hand-written wrappers. R=r DELTA=740 (289 added, 300 deleted, 151 changed) OCL=23326 CL=23331
This commit is contained in:
parent
8c5bc7e93a
commit
1f8a40d85c
28 changed files with 434 additions and 435 deletions
|
|
@ -4,6 +4,8 @@
|
|||
|
||||
package math
|
||||
|
||||
import "math"
|
||||
|
||||
/*
|
||||
* floating-point mod func without infinity or NaN checking
|
||||
*/
|
||||
|
|
@ -16,7 +18,7 @@ func Fmod(x, y float64) float64 {
|
|||
y = -y;
|
||||
}
|
||||
|
||||
yfr, yexp := sys.Frexp(y);
|
||||
yfr, yexp := Frexp(y);
|
||||
sign := false;
|
||||
r := x;
|
||||
if x < 0 {
|
||||
|
|
@ -25,11 +27,11 @@ func Fmod(x, y float64) float64 {
|
|||
}
|
||||
|
||||
for r >= y {
|
||||
rfr, rexp := sys.Frexp(r);
|
||||
rfr, rexp := Frexp(r);
|
||||
if rfr < yfr {
|
||||
rexp = rexp - 1;
|
||||
}
|
||||
r = r - sys.Ldexp(y, rexp-yexp);
|
||||
r = r - Ldexp(y, rexp-yexp);
|
||||
}
|
||||
if sign {
|
||||
r = -r;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue