diff options
Diffstat (limited to 'sysdeps/ieee754/ldbl-128/e_sinhl.c')
-rw-r--r-- | sysdeps/ieee754/ldbl-128/e_sinhl.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/sysdeps/ieee754/ldbl-128/e_sinhl.c b/sysdeps/ieee754/ldbl-128/e_sinhl.c index 1ca3c6e507..11974a39af 100644 --- a/sysdeps/ieee754/ldbl-128/e_sinhl.c +++ b/sysdeps/ieee754/ldbl-128/e_sinhl.c @@ -53,6 +53,7 @@ * only sinhl(0)=0 is exact for finite x. */ +#include <float.h> #include <math.h> #include <math_private.h> @@ -86,8 +87,11 @@ __ieee754_sinhl (long double x) if (ix <= 0x40044000) { if (ix < 0x3fc60000) /* |x| < 2^-57 */ - if (shuge + x > one) - return x; /* sinh(tiny) = tiny with inexact */ + { + math_check_force_underflow (x); + if (shuge + x > one) + return x; /* sinh(tiny) = tiny with inexact */ + } t = __expm1l (u.value); if (ix < 0x3fff0000) return h * (2.0 * t - t * t / (t + one)); |