summaryrefslogtreecommitdiff
path: root/libm/s_rint.c
diff options
context:
space:
mode:
Diffstat (limited to 'libm/s_rint.c')
-rw-r--r--libm/s_rint.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/libm/s_rint.c b/libm/s_rint.c
index 06432c622..02ec404e6 100644
--- a/libm/s_rint.c
+++ b/libm/s_rint.c
@@ -30,7 +30,7 @@ TWO52[2]={
double rint(double x)
{
- int32_t i0, j0, sx;
+ int32_t i0, _j0, sx;
u_int32_t i,i1;
double t;
/* We use w = x + 2^52; t = w - 2^52; trick to round x to integer.
@@ -43,11 +43,11 @@ double rint(double x)
EXTRACT_WORDS(i0,i1,x);
/* Unbiased exponent */
- j0 = ((((u_int32_t)i0) >> 20)&0x7ff)-0x3ff;
+ _j0 = ((((u_int32_t)i0) >> 20)&0x7ff)-0x3ff;
- if (j0 > 51) {
+ if (_j0 > 51) {
//Why bother? Just returning x works too
- //if (j0 == 0x400) /* inf or NaN */
+ //if (_j0 == 0x400) /* inf or NaN */
// return x+x;
return x; /* x is integral */
}
@@ -55,8 +55,8 @@ double rint(double x)
/* Sign */
sx = ((u_int32_t)i0) >> 31;
- if (j0<20) {
- if (j0<0) { /* |x| < 1 */
+ if (_j0<20) {
+ if (_j0<0) { /* |x| < 1 */
if (((i0&0x7fffffff)|i1)==0) return x;
i1 |= (i0&0x0fffff);
i0 &= 0xfffe0000;
@@ -68,19 +68,19 @@ double rint(double x)
SET_HIGH_WORD(t,(i0&0x7fffffff)|(sx<<31));
return t;
} else {
- i = (0x000fffff)>>j0;
+ i = (0x000fffff)>>_j0;
if (((i0&i)|i1)==0) return x; /* x is integral */
i>>=1;
if (((i0&i)|i1)!=0) {
- if (j0==19) i1 = 0x40000000;
- else i0 = (i0&(~i))|((0x20000)>>j0);
+ if (_j0==19) i1 = 0x40000000;
+ else i0 = (i0&(~i))|((0x20000)>>_j0);
}
}
} else {
- i = ((u_int32_t)(0xffffffff))>>(j0-20);
+ i = ((u_int32_t)(0xffffffff))>>(_j0-20);
if ((i1&i)==0) return x; /* x is integral */
i>>=1;
- if ((i1&i)!=0) i1 = (i1&(~i))|((0x40000000)>>(j0-20));
+ if ((i1&i)!=0) i1 = (i1&(~i))|((0x40000000)>>(_j0-20));
}
INSERT_WORDS(x,i0,i1);
w = TWO52[sx]+x;