diff options
Diffstat (limited to 'lib/libm/src/s_trunc.c')
| -rw-r--r-- | lib/libm/src/s_trunc.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/lib/libm/src/s_trunc.c b/lib/libm/src/s_trunc.c index 079956b1178..3fdf02a2bc0 100644 --- a/lib/libm/src/s_trunc.c +++ b/lib/libm/src/s_trunc.c @@ -32,28 +32,28 @@ static const double huge = 1.0e300; double trunc(double x) { - int32_t i0,i1,j0; + int32_t i0,i1,jj0; u_int32_t i; EXTRACT_WORDS(i0,i1,x); - j0 = ((i0>>20)&0x7ff)-0x3ff; - if(j0<20) { - if(j0<0) { /* raise inexact if x != 0 */ + jj0 = ((i0>>20)&0x7ff)-0x3ff; + if(jj0<20) { + if(jj0<0) { /* raise inexact if x != 0 */ if(huge+x>0.0) {/* |x|<1, so return 0*sign(x) */ i0 &= 0x80000000U; i1 = 0; } } else { - i = (0x000fffff)>>j0; + i = (0x000fffff)>>jj0; if(((i0&i)|i1)==0) return x; /* x is integral */ if(huge+x>0.0) { /* raise inexact flag */ i0 &= (~i); i1=0; } } - } else if (j0>51) { - if(j0==0x400) return x+x; /* inf or NaN */ + } else if (jj0>51) { + if(jj0==0x400) return x+x; /* inf or NaN */ else return x; /* x is integral */ } else { - i = ((u_int32_t)(0xffffffff))>>(j0-20); + i = ((u_int32_t)(0xffffffff))>>(jj0-20); if((i1&i)==0) return x; /* x is integral */ if(huge+x>0.0) /* raise inexact flag */ i1 &= (~i); |
