summaryrefslogtreecommitdiff
path: root/src/lib/math/exp.go
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2009-01-15 19:11:32 -0800
committerRuss Cox <rsc@golang.org>2009-01-15 19:11:32 -0800
commit0e3a148e3bfda8a50b49777d0588eaac21b90aed (patch)
treecd5e9599203c9bdf211a79358416c3fe447a2a5d /src/lib/math/exp.go
parentec57a60bebcacf864189f04e538db6eed25e8286 (diff)
downloadgolang-0e3a148e3bfda8a50b49777d0588eaac21b90aed.tar.gz
redo and clean up math.
R=r DELTA=243 (60 added, 72 deleted, 111 changed) OCL=22909 CL=22912
Diffstat (limited to 'src/lib/math/exp.go')
-rw-r--r--src/lib/math/exp.go31
1 files changed, 14 insertions, 17 deletions
diff --git a/src/lib/math/exp.go b/src/lib/math/exp.go
index e1402f02a..efc17aec0 100644
--- a/src/lib/math/exp.go
+++ b/src/lib/math/exp.go
@@ -82,26 +82,23 @@ import "math"
// compiler will convert from decimal to binary accurately enough
// to produce the hexadecimal values shown.
-export const (
- Ln2 = 0.693147180559945309417232121458176568;
- HalfLn2 = 0.346573590279972654708616060729088284;
-
- Ln2Hi = 6.93147180369123816490e-01;
- Ln2Lo = 1.90821492927058770002e-10;
- Log2e = 1.44269504088896338700e+00;
+export func Exp(x float64) float64 {
+ const (
+ Ln2Hi = 6.93147180369123816490e-01;
+ Ln2Lo = 1.90821492927058770002e-10;
+ Log2e = 1.44269504088896338700e+00;
- P1 = 1.66666666666666019037e-01; /* 0x3FC55555; 0x5555553E */
- P2 = -2.77777777770155933842e-03; /* 0xBF66C16C; 0x16BEBD93 */
- P3 = 6.61375632143793436117e-05; /* 0x3F11566A; 0xAF25DE2C */
- P4 = -1.65339022054652515390e-06; /* 0xBEBBBD41; 0xC5D26BF1 */
- P5 = 4.13813679705723846039e-08; /* 0x3E663769; 0x72BEA4D0 */
+ P1 = 1.66666666666666019037e-01; /* 0x3FC55555; 0x5555553E */
+ P2 = -2.77777777770155933842e-03; /* 0xBF66C16C; 0x16BEBD93 */
+ P3 = 6.61375632143793436117e-05; /* 0x3F11566A; 0xAF25DE2C */
+ P4 = -1.65339022054652515390e-06; /* 0xBEBBBD41; 0xC5D26BF1 */
+ P5 = 4.13813679705723846039e-08; /* 0x3E663769; 0x72BEA4D0 */
- Overflow = 7.09782712893383973096e+02;
- Underflow = -7.45133219101941108420e+02;
- NearZero = 1.0/(1<<28); // 2^-28
-)
+ Overflow = 7.09782712893383973096e+02;
+ Underflow = -7.45133219101941108420e+02;
+ NearZero = 1.0/(1<<28); // 2^-28
+ )
-export func Exp(x float64) float64 {
// special cases
switch {
case sys.isNaN(x) || sys.isInf(x, 1):