diff options
Diffstat (limited to 'src/pkg/math/sqrt.go')
-rw-r--r-- | src/pkg/math/sqrt.go | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/src/pkg/math/sqrt.go b/src/pkg/math/sqrt.go index 63f458b4b..1e2209f2a 100644 --- a/src/pkg/math/sqrt.go +++ b/src/pkg/math/sqrt.go @@ -27,39 +27,39 @@ func Sqrt(x float64) float64 { if x < 0 { return NaN() } - return 0; + return 0 } - y, exp := Frexp(x); + y, exp := Frexp(x) for y < 0.5 { - y = y * 2; - exp = exp - 1; + y = y * 2 + exp = exp - 1 } if exp&1 != 0 { - y = y * 2; - exp = exp - 1; + y = y * 2 + exp = exp - 1 } - temp := 0.5 * (1 + y); + temp := 0.5 * (1 + y) for exp > 60 { - temp = temp * float64(1<<30); - exp = exp - 60; + temp = temp * float64(1<<30) + exp = exp - 60 } for exp < -60 { - temp = temp / float64(1<<30); - exp = exp + 60; + temp = temp / float64(1<<30) + exp = exp + 60 } if exp >= 0 { - exp = 1 << uint(exp/2); - temp = temp * float64(exp); + exp = 1 << uint(exp/2) + temp = temp * float64(exp) } else { - exp = 1 << uint(-exp/2); - temp = temp / float64(exp); + exp = 1 << uint(-exp/2) + temp = temp / float64(exp) } for i := 0; i <= 4; i++ { temp = 0.5 * (temp + x/temp) } - return temp; + return temp } |