summaryrefslogtreecommitdiff
path: root/sysdeps/ieee754/dbl-64/s_tanh.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/ieee754/dbl-64/s_tanh.c')
-rw-r--r--sysdeps/ieee754/dbl-64/s_tanh.c6
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));