mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-22 04:50:07 +00:00
Fix ldbl-128ibm atan2l for x near 1.
This commit is contained in:
parent
0eb6951257
commit
16a0e2ec87
@ -1,5 +1,10 @@
|
||||
2012-10-31 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
[BZ #14610]
|
||||
* sysdeps/ieee754/ldbl-128ibm/e_atan2l.c (__ieee754_atan2l): Check
|
||||
for low part of x being zero before using __atanl (y).
|
||||
* math/libm-test.inc (atan2_test): Add another test.
|
||||
|
||||
* manual/install.texi (Configuring and compiling): Document
|
||||
general use of test-wrapper and test-wrapper-env.
|
||||
* INSTALL: Regenerated.
|
||||
|
4
NEWS
4
NEWS
@ -16,8 +16,8 @@ Version 2.17
|
||||
14303, 14307, 14328, 14331, 14336, 14337, 14347, 14349, 14376, 14417,
|
||||
14459, 14476, 14477, 14505, 14510, 14516, 14518, 14519, 14530, 14532,
|
||||
14538, 14543, 14544, 14545, 14557, 14562, 14568, 14576, 14579, 14583,
|
||||
14587, 14595, 14602, 14621, 14638, 14645, 14648, 14652, 14660, 14661,
|
||||
14683, 14694, 14716, 14743, 14767, 14783.
|
||||
14587, 14595, 14602, 14610, 14621, 14638, 14645, 14648, 14652, 14660,
|
||||
14661, 14683, 14694, 14716, 14743, 14767, 14783.
|
||||
|
||||
* Support for STT_GNU_IFUNC symbols added for s390 and s390x.
|
||||
Optimized versions of memcpy, memset, and memcmp added for System z10 and
|
||||
|
@ -1297,6 +1297,9 @@ atan2_test (void)
|
||||
TEST_ff_f (atan2, 1.390625L, 0.9296875L, 0.981498387184244311516296577615519772L);
|
||||
|
||||
TEST_ff_f (atan2, -0.00756827042671106339L, -.001792735857538728036L, -1.80338464113663849327153994379639112L);
|
||||
#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 64
|
||||
TEST_ff_f (atan2, 0x1.00000000000001p0L, 0x1.00000000000001p0L, M_PI_4l);
|
||||
#endif
|
||||
|
||||
END (atan2);
|
||||
}
|
||||
|
@ -65,7 +65,8 @@ __ieee754_atan2l(long double y, long double x)
|
||||
if(((ix)>0x7ff0000000000000LL)||
|
||||
((iy)>0x7ff0000000000000LL)) /* x or y is NaN */
|
||||
return x+y;
|
||||
if(((hx-0x3ff0000000000000LL))==0) return __atanl(y); /* x=1.0L */
|
||||
if(((hx-0x3ff0000000000000LL))==0
|
||||
&& (lx&0x7fffffffffffffff)==0) return __atanl(y); /* x=1.0L */
|
||||
m = ((hy>>63)&1)|((hx>>62)&2); /* 2*sign(x)+sign(y) */
|
||||
|
||||
/* when y = 0 */
|
||||
|
Loading…
Reference in New Issue
Block a user