diff options
Diffstat (limited to 'newlib/libm')
-rw-r--r-- | newlib/libm/common/sf_expm1.c | 3 | ||||
-rw-r--r-- | newlib/libm/common/sf_log1p.c | 4 | ||||
-rw-r--r-- | newlib/libm/common/sf_scalbn.c | 3 | ||||
-rw-r--r-- | newlib/libm/math/ef_log.c | 4 |
4 files changed, 8 insertions, 6 deletions
diff --git a/newlib/libm/common/sf_expm1.c b/newlib/libm/common/sf_expm1.c index 1df6f80d2..e9108b7b8 100644 --- a/newlib/libm/common/sf_expm1.c +++ b/newlib/libm/common/sf_expm1.c @@ -102,9 +102,10 @@ Q5 = -2.0109921195e-07; /* 0xb457edbb */ e = (x*(e-c)-c); e -= hxs; if(k== -1) return (float)0.5*(x-e)-(float)0.5; - if(k==1) + if(k==1) { if(x < (float)-0.25) return -(float)2.0*(e-(x+(float)0.5)); else return one+(float)2.0*(x-e); + } if (k <= -2 || k>56) { /* suffice to return exp(x)-1 */ __int32_t i; y = one-(e-x); diff --git a/newlib/libm/common/sf_log1p.c b/newlib/libm/common/sf_log1p.c index 31c426fe7..5ae7fb936 100644 --- a/newlib/libm/common/sf_log1p.c +++ b/newlib/libm/common/sf_log1p.c @@ -93,8 +93,8 @@ static float zero = 0.0; } hfsq=(float)0.5*f*f; if(hu==0) { /* |f| < 2**-20 */ - if(f==zero) if(k==0) return zero; - else {c += k*ln2_lo; return k*ln2_hi+c;} + if(f==zero) { if(k==0) return zero; + else {c += k*ln2_lo; return k*ln2_hi+c;}} R = hfsq*((float)1.0-(float)0.66666666666666666*f); if(k==0) return f-R; else return k*ln2_hi-((R-(k*ln2_lo+c))-f); diff --git a/newlib/libm/common/sf_scalbn.c b/newlib/libm/common/sf_scalbn.c index ee65f40ad..fb67c7816 100644 --- a/newlib/libm/common/sf_scalbn.c +++ b/newlib/libm/common/sf_scalbn.c @@ -54,10 +54,11 @@ tiny = 1.0e-30; if (k > 0xfe) return huge*copysignf(huge,x); /* overflow */ if (k > 0) /* normal result */ {SET_FLOAT_WORD(x,(ix&0x807fffff)|(k<<23)); return x;} - if (k <= -25) + if (k <= -25) { if (n > OVERFLOW_INT) /* in case integer overflow in n+k */ return huge*copysignf(huge,x); /*overflow*/ else return tiny*copysignf(tiny,x); /*underflow*/ + } k += 25; /* subnormal result */ SET_FLOAT_WORD(x,(ix&0x807fffff)|(k<<23)); return x*twom25; diff --git a/newlib/libm/math/ef_log.c b/newlib/libm/math/ef_log.c index 93f072c56..87d6af2c5 100644 --- a/newlib/libm/math/ef_log.c +++ b/newlib/libm/math/ef_log.c @@ -65,8 +65,8 @@ static float zero = 0.0; k += (i>>23); f = x-(float)1.0; if((0x007fffff&(15+ix))<16) { /* |f| < 2**-20 */ - if(f==zero) if(k==0) return zero; else {dk=(float)k; - return dk*ln2_hi+dk*ln2_lo;} + 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); if(k==0) return f-R; else {dk=(float)k; return dk*ln2_hi-((R-dk*ln2_lo)-f);} |