aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/ieee754
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2013-05-09 21:28:54 +0000
committerJoseph Myers <joseph@codesourcery.com>2013-05-09 21:28:54 +0000
commitd0213cd0b629cae95ed9607fcf26793a3a0d686c (patch)
tree701958f07ec3bce5acf427e70416297fca5e7ea0 /sysdeps/ieee754
parent0d3e777af2f2818111e2699982f64af16ac032b5 (diff)
downloadglibc-d0213cd0b629cae95ed9607fcf26793a3a0d686c.zip
glibc-d0213cd0b629cae95ed9607fcf26793a3a0d686c.tar.gz
glibc-d0213cd0b629cae95ed9607fcf26793a3a0d686c.tar.bz2
Fix ldbl-128 cos range reduction near pi/2 (bug 15429).
Diffstat (limited to 'sysdeps/ieee754')
-rw-r--r--sysdeps/ieee754/ldbl-128/e_rem_pio2l.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/sysdeps/ieee754/ldbl-128/e_rem_pio2l.c b/sysdeps/ieee754/ldbl-128/e_rem_pio2l.c
index 84846fd..ee856ac 100644
--- a/sysdeps/ieee754/ldbl-128/e_rem_pio2l.c
+++ b/sysdeps/ieee754/ldbl-128/e_rem_pio2l.c
@@ -184,13 +184,13 @@ static const int32_t two_over_pi[] = {
};
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)
@@ -213,7 +213,7 @@ 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;
@@ -221,7 +221,7 @@ int32_t __ieee754_rem_pio2l(long double x, long double *y)
}
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;