summaryrefslogtreecommitdiff
path: root/src/lib/math/log.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/math/log.go')
-rw-r--r--src/lib/math/log.go26
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;
}