From 603fd103e6aec3ea0ab008286b41282c47df6be7 Mon Sep 17 00:00:00 2001 From: kargl Date: Mon, 3 Jun 2013 19:51:32 +0000 Subject: 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) --- lib/msun/src/math.h | 2 +- lib/msun/src/s_expm1.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'lib/msun/src') 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 -- cgit v1.1