2013-05-09 Joseph Myers <joseph@codesourcery.com>
+ [BZ #15429]
+ * sysdeps/ieee754/ldbl-128/e_rem_pio2l.c (c): Use 113 bits for
+ high part of pi/2.
+ (__ieee754_rem_pio2l): Update comments.
+
* math/libm-test.inc (M_SQRT_2_2): Remove macro.
(csqrt_test): Use M_SQRT1_2l instead of M_SQRT_2_2.
15062, 15078, 15084, 15085, 15086, 15160, 15214, 15221, 15232, 15234,
15283, 15285, 15287, 15304, 15305, 15307, 15309, 15327, 15330, 15335,
15336, 15337, 15342, 15346, 15361, 15366, 15380, 15394, 15405, 15406,
- 15409, 15416, 15418, 15419, 15423, 15426.
+ 15409, 15416, 15418, 15419, 15423, 15426, 15429.
* CVE-2013-0242 Buffer overrun in regexp matcher has been fixed (Bugzilla
#15078).
};
static const long double c[] = {
-/* 93 bits of pi/2 */
+/* 113 bits of pi/2 */
#define PI_2_1 c[0]
- 1.57079632679489661923132169155131424e+00L, /* 3fff921fb54442d18469898cc5100000 */
+ 0x1.921fb54442d18469898cc51701b8p+0L,
/* pi/2 - PI_2_1 */
#define PI_2_1t c[1]
- 8.84372056613570112025531863263659260e-29L, /* 3fa1c06e0e68948127044533e63a0106 */
+ 0x3.9a252049c1114cf98e804177d4c8p-116L,
};
int32_t __ieee754_rem_pio2l(long double x, long double *y)
{
if (hx > 0)
{
- /* 113 + 93 bit PI is ok */
+ /* 113 + 113 bit PI is ok */
z = x - PI_2_1;
y[0] = z - PI_2_1t;
y[1] = (z - y[0]) - PI_2_1t;
}
else
{
- /* 113 + 93 bit PI is ok */
+ /* 113 + 113 bit PI is ok */
z = x + PI_2_1;
y[0] = z + PI_2_1t;
y[1] = (z - y[0]) + PI_2_1t;