diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/msun/src/e_log.c | 2 | ||||
-rw-r--r-- | lib/msun/src/e_logf.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/lib/msun/src/e_log.c b/lib/msun/src/e_log.c index eee7cf9..ed3c401 100644 --- a/lib/msun/src/e_log.c +++ b/lib/msun/src/e_log.c @@ -107,7 +107,7 @@ __ieee754_log(double x) SET_HIGH_WORD(x,hx|(i^0x3ff00000)); /* normalize x or x/2 */ k += (i>>20); f = x-1.0; - if((0x000fffff&(2+hx))<3) { /* |f| < 2**-20 */ + if((0x000fffff&(2+hx))<3) { /* -2**-20 <= f < 2**-20 */ if(f==zero) if(k==0) return zero; else {dk=(double)k; return dk*ln2_hi+dk*ln2_lo;} R = f*f*(0.5-0.33333333333333333*f); diff --git a/lib/msun/src/e_logf.c b/lib/msun/src/e_logf.c index b47b77b..175c955 100644 --- a/lib/msun/src/e_logf.c +++ b/lib/msun/src/e_logf.c @@ -55,7 +55,7 @@ __ieee754_logf(float x) SET_FLOAT_WORD(x,ix|(i^0x3f800000)); /* normalize x or x/2 */ k += (i>>23); f = x-(float)1.0; - if((0x007fffff&(15+ix))<16) { /* |f| < 2**-20 */ + if((0x007fffff&(0x8000+ix))<0xc000) { /* -2**-9 <= f < 2**-9 */ if(f==zero) if(k==0) return zero; else {dk=(float)k; return dk*ln2_hi+dk*ln2_lo;} R = f*f*((float)0.5-(float)0.33333333333333333*f); |