diff options
Diffstat (limited to 'sysdeps/ieee754/dbl-64/s_tanh.c')
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_tanh.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sysdeps/ieee754/dbl-64/s_tanh.c b/sysdeps/ieee754/dbl-64/s_tanh.c index 23cfcdead5..344a2f0330 100644 --- a/sysdeps/ieee754/dbl-64/s_tanh.c +++ b/sysdeps/ieee754/dbl-64/s_tanh.c @@ -38,6 +38,7 @@ static char rcsid[] = "$NetBSD: s_tanh.c,v 1.7 1995/05/10 20:48:22 jtc Exp $"; * only tanh(0)=0 is exact for finite argument. */ +#include <float.h> #include <math.h> #include <math_private.h> @@ -68,7 +69,10 @@ __tanh (double x) if ((ix | lx) == 0) return x; /* x == +-0 */ if (ix < 0x3c800000) /* |x|<2**-55 */ - return x * (one + x); /* tanh(small) = small */ + { + math_check_force_underflow (x); + return x * (one + x); /* tanh(small) = small */ + } if (ix >= 0x3ff00000) /* |x|>=1 */ { t = __expm1 (two * fabs (x)); |