diff options
Diffstat (limited to 'sysdeps/ieee754/ldbl-128/s_log1pl.c')
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_log1pl.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/sysdeps/ieee754/ldbl-128/s_log1pl.c b/sysdeps/ieee754/ldbl-128/s_log1pl.c index ff759bc000..b348f41e55 100644 --- a/sysdeps/ieee754/ldbl-128/s_log1pl.c +++ b/sysdeps/ieee754/ldbl-128/s_log1pl.c @@ -117,7 +117,6 @@ static const long double C2 = 1.428606820309417232121458176568075500134E-6L; static const long double sqrth = 0.7071067811865475244008443621048490392848L; /* ln (2^16384 * (1 - 2^-113)) */ -static const long double maxlog = 1.1356523406294143949491931077970764891253E4L; static const long double zero = 0.0L; long double @@ -131,8 +130,8 @@ __log1pl (long double xm1) /* Test for NaN or infinity input. */ u.value = xm1; hx = u.parts32.w0; - if (hx >= 0x7fff0000) - return xm1; + if ((hx & 0x7fffffff) >= 0x7fff0000) + return xm1 + fabsl (xm1); /* log1p(+- 0) = +- 0. */ if (((hx & 0x7fffffff) == 0) @@ -141,11 +140,7 @@ __log1pl (long double xm1) if ((hx & 0x7fffffff) < 0x3f8e0000) { - if (fabsl (xm1) < LDBL_MIN) - { - long double force_underflow = xm1 * xm1; - math_force_eval (force_underflow); - } + math_check_force_underflow (xm1); if ((int) xm1 == 0) return xm1; } |