[Python-checkins] r71277 - python/branches/py3k-short-float-repr/Python/dtoa.c

mark.dickinson python-checkins at python.org
Sun Apr 5 23:31:16 CEST 2009


Author: mark.dickinson
Date: Sun Apr  5 23:31:16 2009
New Revision: 71277

Log:
Treat Sudden_Underflow as not defined.


Modified:
   python/branches/py3k-short-float-repr/Python/dtoa.c

Modified: python/branches/py3k-short-float-repr/Python/dtoa.c
==============================================================================
--- python/branches/py3k-short-float-repr/Python/dtoa.c	(original)
+++ python/branches/py3k-short-float-repr/Python/dtoa.c	Sun Apr  5 23:31:16 2009
@@ -955,9 +955,7 @@
 	Bigint *b;
 	int de, k;
 	ULong *x, y, z;
-#ifndef Sudden_Underflow
 	int i;
-#endif
 #define d0 word0(d)
 #define d1 word1(d)
 
@@ -968,13 +966,8 @@
 
 	z = d0 & Frac_mask;
 	d0 &= 0x7fffffff;	/* clear sign bit, which we ignore */
-#ifdef Sudden_Underflow
-	de = (int)(d0 >> Exp_shift);
-	z |= Exp_msk11;
-#else
 	if ((de = (int)(d0 >> Exp_shift)))
 		z |= Exp_msk1;
-#endif
 	if ((y = d1)) {
 		if ((k = lo0bits(&y))) {
 			x[0] = y | z << (32 - k);
@@ -982,32 +975,24 @@
 			}
 		else
 			x[0] = y;
-#ifndef Sudden_Underflow
 		i =
-#endif
 		    b->wds = (x[1] = z) ? 2 : 1;
 		}
 	else {
 		k = lo0bits(&z);
 		x[0] = z;
-#ifndef Sudden_Underflow
 		i =
-#endif
 		    b->wds = 1;
 		k += 32;
 		}
-#ifndef Sudden_Underflow
 	if (de) {
-#endif
 		*e = de - Bias - (P-1) + k;
 		*bits = P - k;
-#ifndef Sudden_Underflow
 		}
 	else {
 		*e = de - Bias - (P-1) + 1 + k;
 		*bits = 32*i - hi0bits(x[i-1]);
 		}
-#endif
 	return b;
 	}
 #undef d0
@@ -1204,7 +1189,6 @@
 	nd0 = bc->nd0;
 	p5 = nd + bc->e0 - 1;
 	speccase = 0;
-#ifndef Sudden_Underflow
 	if (rv->d == 0.) {	/* special case: value near underflow-to-zero */
 				/* threshold was rounded to zero */
 		b = i2b(1);
@@ -1222,7 +1206,6 @@
 			}
 		}
 	else
-#endif
 	{
 		b = d2b(rv, &p2, &bbits);
 		if (b == NULL)
@@ -1233,18 +1216,7 @@
 	/* Check for denormal case. */
 	i = P - bbits;
 	if (i > (j = P - Emin - 1 + p2)) {
-#ifdef Sudden_Underflow
-		Bfree(b);
-		b = i2b(1);
-		if (b == NULL)
-			return -1;
-		p2 = Emin;
-		i = P - 1;
-		word0(rv) = (1 + bc->scale) << Exp_shift;
-		word1(rv) = 0;
-#else
 		i = j;
-#endif
 		}
 		{
 		b = lshift(b, ++i);
@@ -1252,9 +1224,7 @@
 			return -1;
 		b->x[0] |= 1;
 		}
-#ifndef Sudden_Underflow
  have_i:
-#endif
 	p2 -= p5 + i;
 	d = i2b(1);
 	if (d == NULL) {
@@ -1786,18 +1756,6 @@
 			else if (!(word0(&rv) & Bndry_mask) && !word1(&rv)) {
  drop_down:
 				/* boundary case -- decrement exponent */
-#ifdef Sudden_Underflow /*{{*/
-				L = word0(&rv) & Exp_mask;
-				if (L <= (bc.scale ? (2*P+1)*Exp_msk1 : Exp_msk1))
-					{
-					if (bc.nd >nd) {
-						bc.uflchk = 1;
-						break;
-						}
-					goto undfl;
-					}
-				L -= Exp_msk1;
-#else /*Sudden_Underflow}{*/
 				if (bc.scale) {
 					L = word0(&rv) & Exp_mask;
 					if (L <= (2*P+1)*Exp_msk1) {
@@ -1814,7 +1772,6 @@
 						}
 					}
 				L = (word0(&rv) & Exp_mask) - Exp_msk1;
-#endif /*Sudden_Underflow}}*/
 				word0(&rv) = L | Bndry_mask1;
 				word1(&rv) = 0xffffffff;
 				break;
@@ -1825,7 +1782,6 @@
 				dval(&rv) += ulp(&rv);
 			else {
 				dval(&rv) -= ulp(&rv);
-#ifndef Sudden_Underflow
 				if (!dval(&rv)) {
 					if (bc.nd >nd) {
 						bc.uflchk = 1;
@@ -1833,7 +1789,6 @@
 						}
 					goto undfl;
 					}
-#endif
 				}
 			bc.dsign = 1 - bc.dsign;
 			break;
@@ -1842,7 +1797,6 @@
 			if (bc.dsign)
 				aadj = aadj1 = 1.;
 			else if (word1(&rv) || word0(&rv) & Bndry_mask) {
-#ifndef Sudden_Underflow
 				if (word1(&rv) == Tiny1 && !word0(&rv)) {
 					if (bc.nd >nd) {
 						bc.uflchk = 1;
@@ -1850,7 +1804,6 @@
 						}
 					goto undfl;
 					}
-#endif
 				aadj = 1.;
 				aadj1 = -1.;
 				}
@@ -2083,10 +2036,8 @@
 		j, j1, k, k0, k_check, leftright, m2, m5, s2, s5,
 		spec_case, try_quick;
 	Long L;
-#ifndef Sudden_Underflow
 	int denorm;
 	ULong x;
-#endif
 	Bigint *b, *b1, *delta, *mlo, *mhi, *S;
 	U d2, eps, u;
 	double ds;
@@ -2123,11 +2074,7 @@
 
 
 	b = d2b(&u, &be, &bbits);
-#ifdef Sudden_Underflow
-	i = (int)(word0(&u) >> Exp_shift1 & (Exp_mask>>Exp_shift1));
-#else
 	if ((i = (int)(word0(&u) >> Exp_shift1 & (Exp_mask>>Exp_shift1)))) {
-#endif
 		dval(&d2) = dval(&u);
 		word0(&d2) &= Frac_mask1;
 		word0(&d2) |= Exp_11;
@@ -2155,7 +2102,6 @@
 		 */
 
 		i -= Bias;
-#ifndef Sudden_Underflow
 		denorm = 0;
 		}
 	else {
@@ -2169,7 +2115,6 @@
 		i -= (Bias + (P-1) - 1) + 1;
 		denorm = 1;
 		}
-#endif
 	ds = (dval(&d2)-1.5)*0.289529654602168 + 0.1760912590558 + i*0.301029995663981;
 	k = (int)ds;
 	if (ds < 0. && ds != k)
@@ -2388,9 +2333,7 @@
 	mhi = mlo = 0;
 	if (leftright) {
 		i =
-#ifndef Sudden_Underflow
 			denorm ? be + (Bias + (P-1) - 1 + 1) :
-#endif
 			1 + P - bbits;
 		b2 += i;
 		s2 += i;
@@ -2426,9 +2369,7 @@
 	if ((mode < 2 || leftright)
 				) {
 		if (!word1(&u) && !(word0(&u) & Bndry_mask)
-#ifndef Sudden_Underflow
 		 && word0(&u) & (Exp_mask & ~Exp_msk1)
-#endif
 				) {
 			/* The special case */
 			b2 += Log2P;


More information about the Python-checkins mailing list