mirror of
git://sourceware.org/git/glibc.git
synced 2025-02-17 13:00:43 +08:00
Fix ldbl-128ibm atanl spurious underflows (bug 14871).
This commit is contained in:
parent
79c9b9feb4
commit
0a42601f27
@ -1,5 +1,10 @@
|
||||
2012-11-22 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
[BZ #14871]
|
||||
* sysdeps/ieee754/ldbl-128ibm/s_atanl.c (__atanl): Return the
|
||||
input for small inputs. Return +/- pi/2 for large inputs.
|
||||
* math/libm-test.inc (atan_test): Add more tests.
|
||||
|
||||
* sysdeps/generic/unwind-dw2-fde-glibc.c
|
||||
(_Unwind_IteratePhdrCallback): Declare P_DYNAMIC with
|
||||
__attribute__ ((unused)).
|
||||
|
2
NEWS
2
NEWS
@ -21,7 +21,7 @@ Version 2.17
|
||||
14638, 14645, 14648, 14652, 14660, 14661, 14669, 14672, 14683, 14694,
|
||||
14716, 14719, 14743, 14767, 14783, 14784, 14785, 14793, 14796, 14797,
|
||||
14801, 14805, 14807, 14809, 14811, 14815, 14821, 14822, 14824, 14828,
|
||||
14831, 14835, 14838, 14856, 14863, 14865, 14866, 14868, 14869.
|
||||
14831, 14835, 14838, 14856, 14863, 14865, 14866, 14868, 14869, 14871.
|
||||
|
||||
* Port to ARM AArch64 contributed by Linaro.
|
||||
|
||||
|
@ -1195,6 +1195,14 @@ atan_test (void)
|
||||
|
||||
TEST_f_f (atan, 0.75L, 0.643501108793284386802809228717322638L);
|
||||
|
||||
TEST_f_f (atan, 0x1p-100L, 0x1p-100L);
|
||||
#ifndef TEST_FLOAT
|
||||
TEST_f_f (atan, 0x1p-600L, 0x1p-600L);
|
||||
#endif
|
||||
#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
|
||||
TEST_f_f (atan, 0x1p-10000L, 0x1p-10000L);
|
||||
#endif
|
||||
|
||||
END (atan);
|
||||
}
|
||||
|
||||
|
@ -199,6 +199,22 @@ __atanl (long double x)
|
||||
return atantbl[83];
|
||||
}
|
||||
|
||||
if (k <= 0x3c800000) /* |x| <= 2**-55. */
|
||||
{
|
||||
/* Raise inexact. */
|
||||
if (1e300L + x > 0.0)
|
||||
return x;
|
||||
}
|
||||
|
||||
if (k >= 0x46c00000) /* |x| >= 2**109. */
|
||||
{
|
||||
/* Saturate result to {-,+}pi/2. */
|
||||
if (sign)
|
||||
return -atantbl[83];
|
||||
else
|
||||
return atantbl[83];
|
||||
}
|
||||
|
||||
if (sign)
|
||||
x = -x;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user