summaryrefslogtreecommitdiffstats
path: root/lib/msun/src
diff options
context:
space:
mode:
authorkargl <kargl@FreeBSD.org>2013-06-03 19:51:32 +0000
committerkargl <kargl@FreeBSD.org>2013-06-03 19:51:32 +0000
commit603fd103e6aec3ea0ab008286b41282c47df6be7 (patch)
treee5feba646e48580667c26ffe4f4620a33e55d5b8 /lib/msun/src
parentbcac12846249a47042ba778ea5db26302c3dde87 (diff)
downloadFreeBSD-src-603fd103e6aec3ea0ab008286b41282c47df6be7.zip
FreeBSD-src-603fd103e6aec3ea0ab008286b41282c47df6be7.tar.gz
ld80 and ld128 implementations of expm1l(). This code started life
as a fairly faithful implementation of the algorithm found in PTP Tang, "Table-driven implementation of the Expm1 function in IEEE floating-point arithmetic," ACM Trans. Math. Soft., 18, 211-222 (1992). Over the last 18-24 months, the code has under gone significant optimization and testing. Reviewed by: bde Obtained from: bde (most of the optimizations)
Diffstat (limited to 'lib/msun/src')
-rw-r--r--lib/msun/src/math.h2
-rw-r--r--lib/msun/src/s_expm1.c4
2 files changed, 5 insertions, 1 deletions
diff --git a/lib/msun/src/math.h b/lib/msun/src/math.h
index d578e41..8d0d478 100644
--- a/lib/msun/src/math.h
+++ b/lib/msun/src/math.h
@@ -405,6 +405,7 @@ long double copysignl(long double, long double) __pure2;
long double cosl(long double);
long double exp2l(long double);
long double expl(long double);
+long double expm1l(long double);
long double fabsl(long double) __pure2;
long double fdiml(long double, long double);
long double floorl(long double);
@@ -466,7 +467,6 @@ long double atanhl(long double);
long double coshl(long double);
long double erfcl(long double);
long double erfl(long double);
-long double expm1l(long double);
long double lgammal(long double);
long double powl(long double, long double);
long double sinhl(long double);
diff --git a/lib/msun/src/s_expm1.c b/lib/msun/src/s_expm1.c
index 5059d32..37998a3 100644
--- a/lib/msun/src/s_expm1.c
+++ b/lib/msun/src/s_expm1.c
@@ -216,3 +216,7 @@ expm1(double x)
}
return y;
}
+
+#if (LDBL_MANT_DIG == 53)
+__weak_reference(expm1, expm1l);
+#endif
OpenPOWER on IntegriCloud