diff options
Diffstat (limited to 'sysdeps/ieee754/flt-32/e_j0f.c')
-rw-r--r-- | sysdeps/ieee754/flt-32/e_j0f.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sysdeps/ieee754/flt-32/e_j0f.c b/sysdeps/ieee754/flt-32/e_j0f.c index c4cabd584a..bd0b80fdb0 100644 --- a/sysdeps/ieee754/flt-32/e_j0f.c +++ b/sysdeps/ieee754/flt-32/e_j0f.c @@ -228,10 +228,11 @@ pzerof(float x) int32_t ix; GET_FLOAT_WORD(ix,x); ix &= 0x7fffffff; + /* ix >= 0x40000000 for all calls to this function. */ if(ix>=0x41000000) {p = pR8; q= pS8;} else if(ix>=0x40f71c58){p = pR5; q= pS5;} else if(ix>=0x4036db68){p = pR3; q= pS3;} - else if(ix>=0x40000000){p = pR2; q= pS2;} + else {p = pR2; q= pS2;} z = one/(x*x); r = p[0]+z*(p[1]+z*(p[2]+z*(p[3]+z*(p[4]+z*p[5])))); s = one+z*(q[0]+z*(q[1]+z*(q[2]+z*(q[3]+z*q[4])))); @@ -324,10 +325,11 @@ qzerof(float x) int32_t ix; GET_FLOAT_WORD(ix,x); ix &= 0x7fffffff; + /* ix >= 0x40000000 for all calls to this function. */ if(ix>=0x41000000) {p = qR8; q= qS8;} else if(ix>=0x40f71c58){p = qR5; q= qS5;} else if(ix>=0x4036db68){p = qR3; q= qS3;} - else if(ix>=0x40000000){p = qR2; q= qS2;} + else {p = qR2; q= qS2;} z = one/(x*x); r = p[0]+z*(p[1]+z*(p[2]+z*(p[3]+z*(p[4]+z*p[5])))); s = one+z*(q[0]+z*(q[1]+z*(q[2]+z*(q[3]+z*(q[4]+z*q[5]))))); |