diff options
Diffstat (limited to 'sysdeps/ieee754/ldbl-128/e_j1l.c')
-rw-r--r-- | sysdeps/ieee754/ldbl-128/e_j1l.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/sysdeps/ieee754/ldbl-128/e_j1l.c b/sysdeps/ieee754/ldbl-128/e_j1l.c index 958077d927..591c38efd0 100644 --- a/sysdeps/ieee754/ldbl-128/e_j1l.c +++ b/sysdeps/ieee754/ldbl-128/e_j1l.c @@ -697,6 +697,16 @@ __ieee754_j1l (long double x) if (x == 0.0L) return x; xx = fabsl (x); + if (xx <= 0x1p-58L) + { + long double ret = x * 0.5L; + if (fabsl (ret) < LDBL_MIN) + { + long double force_underflow = ret * ret; + math_force_eval (force_underflow); + } + return ret; + } if (xx <= 2.0L) { /* 0 <= x <= 2 */ |