Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/lib/libm/src/s_trunc.c,v rcsdiff: /ftp/cvs/cvsroot/src/lib/libm/src/s_trunc.c,v: warning: Unknown phrases like `commitid ...;' are present. retrieving revision 1.2 retrieving revision 1.3 diff -u -p -r1.2 -r1.3 --- src/lib/libm/src/s_trunc.c 2007/01/17 23:24:22 1.2 +++ src/lib/libm/src/s_trunc.c 2008/04/25 22:21:53 1.3 @@ -15,7 +15,7 @@ __FBSDID("$FreeBSD: src/lib/msun/src/s_trunc.c,v 1.1 2004/06/20 09:25:43 das Exp $"); #endif #if defined(LIBM_SCCS) && !defined(lint) -__RCSID("$NetBSD: s_trunc.c,v 1.2 2007/01/17 23:24:22 hubertf Exp $"); +__RCSID("$NetBSD: s_trunc.c,v 1.3 2008/04/25 22:21:53 christos Exp $"); #endif /* @@ -35,28 +35,28 @@ static const double huge = 1.0e300; double trunc(double x) { - int32_t i0,i1,j0; + int32_t i0,i1,jj0; uint32_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);