diff options
Diffstat (limited to 'src/pkg/math/mod.go')
-rw-r--r-- | src/pkg/math/mod.go | 50 |
1 files changed, 0 insertions, 50 deletions
diff --git a/src/pkg/math/mod.go b/src/pkg/math/mod.go deleted file mode 100644 index e1a414e5f..000000000 --- a/src/pkg/math/mod.go +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright 2009-2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package math - -/* - Floating-point mod function. -*/ - -// Mod returns the floating-point remainder of x/y. -// The magnitude of the result is less than y and its -// sign agrees with that of x. -// -// Special cases are: -// Mod(±Inf, y) = NaN -// Mod(NaN, y) = NaN -// Mod(x, 0) = NaN -// Mod(x, ±Inf) = x -// Mod(x, NaN) = NaN -func Mod(x, y float64) float64 - -func mod(x, y float64) float64 { - if y == 0 || IsInf(x, 0) || IsNaN(x) || IsNaN(y) { - return NaN() - } - if y < 0 { - y = -y - } - - yfr, yexp := Frexp(y) - sign := false - r := x - if x < 0 { - r = -x - sign = true - } - - for r >= y { - rfr, rexp := Frexp(r) - if rfr < yfr { - rexp = rexp - 1 - } - r = r - Ldexp(y, rexp-yexp) - } - if sign { - r = -r - } - return r -} |