diff options
author | kargl <kargl@FreeBSD.org> | 2013-06-03 19:51:32 +0000 |
---|---|---|
committer | kargl <kargl@FreeBSD.org> | 2013-06-03 19:51:32 +0000 |
commit | 603fd103e6aec3ea0ab008286b41282c47df6be7 (patch) | |
tree | e5feba646e48580667c26ffe4f4620a33e55d5b8 /lib/msun/src | |
parent | bcac12846249a47042ba778ea5db26302c3dde87 (diff) | |
download | FreeBSD-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.h | 2 | ||||
-rw-r--r-- | lib/msun/src/s_expm1.c | 4 |
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 |