diff options
Diffstat (limited to 'sysdeps/ieee754/ldbl-128/s_expm1l.c')
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_expm1l.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/sysdeps/ieee754/ldbl-128/s_expm1l.c b/sysdeps/ieee754/ldbl-128/s_expm1l.c index 04139908c2..ea63501819 100644 --- a/sysdeps/ieee754/ldbl-128/s_expm1l.c +++ b/sysdeps/ieee754/ldbl-128/s_expm1l.c @@ -54,8 +54,8 @@ #include <errno.h> -#include "math.h" -#include "math_private.h" +#include <math.h> +#include <math_private.h> /* exp(x) - 1 = x + 0.5 x^2 + x^3 P(x)/Q(x) -.5 ln 2 < x < .5 ln 2 @@ -102,6 +102,11 @@ __expm1l (long double x) ix = u.parts32.w0; sign = ix & 0x80000000; ix &= 0x7fffffff; + if (!sign && ix >= 0x40060000) + { + /* If num is positive and exp >= 6 use plain exp. */ + return __expl (x); + } if (ix >= 0x7fff0000) { /* Infinity. */ |