diff options
Diffstat (limited to 'src/lib/math/log.go')
-rw-r--r-- | src/lib/math/log.go | 26 |
1 files changed, 9 insertions, 17 deletions
diff --git a/src/lib/math/log.go b/src/lib/math/log.go index 5cd73bf89..e51c72980 100644 --- a/src/lib/math/log.go +++ b/src/lib/math/log.go @@ -5,7 +5,7 @@ package math /* - * log returns the natural logarithm of its floating + * Log returns the natural logarithm of its floating * point argument. * * The coefficients are #2705 from Hart & Cheney. (19.38D) @@ -16,7 +16,7 @@ package math const ( log2 = .693147180559945309e0; - ln10o1 = .4342944819032518276511; + ln10u1 = .4342944819032518276511; sqrto2 = .707106781186547524e0; p0 = -.240139179559210510e2; p1 = .309572928215376501e2; @@ -27,17 +27,12 @@ const q2 = -.891110902798312337e1; ) -export func -log(arg float64) float64 -{ - var x, z, zsq, temp float64; - var exp int; - +export func Log(arg float64) float64 { if arg <= 0 { return sys.NaN(); } - x,exp = sys.frexp(arg); + x, exp := sys.frexp(arg); for x < 0.5 { x = x*2; exp = exp-1; @@ -47,21 +42,18 @@ log(arg float64) float64 exp = exp-1; } - z = (x-1) / (x+1); - zsq = z*z; + z := (x-1) / (x+1); + zsq := z*z; - temp = ((p3*zsq + p2)*zsq + p1)*zsq + p0; + temp := ((p3*zsq + p2)*zsq + p1)*zsq + p0; temp = temp/(((zsq + q2)*zsq + q1)*zsq + q0); temp = temp*z + float64(exp)*log2; return temp; } -export func -log10(arg float64) float64 -{ - +export func Log10(arg float64) float64 { if arg <= 0 { return sys.NaN(); } - return log(arg) * ln10o1; + return Log(arg) * ln10u1; } |