SmallInteger.st
changeset 4455 2d31d0d986be
parent 4184 c7ee6f329db2
child 4523 28d9633c9cb4
--- a/SmallInteger.st	Mon Jul 26 11:07:53 1999 +0200
+++ b/SmallInteger.st	Mon Jul 26 11:11:55 1999 +0200
@@ -435,44 +435,44 @@
     double dval;
 
     if (__isSmallInteger(aNumber)) {
-	val = __intVal(aNumber);
-	if (val != 0) {
-	    me = __intVal(self);
-	    t = me / val;
+        val = __intVal(aNumber);
+        if (val != 0) {
+            me = __intVal(self);
+            t = me / val;
 #ifdef GOOD_OPTIMIZER
-	    if (me % val == 0) {
+            if (me % val == 0) {
 #else
-	    /* this is stupid - all I want is to look for a remainder ... 
-	       but most compilers are too stupid and generate an extra modulus
-	       instruction for "if (me % val)".
-	       Even if most divide instructions already leave the remainder in
-	       some register.
-	       Therefore I use a multiplication which is faster than a modulo
-	       on most machines. Hint to GNU people :-)
-	    */
-	    if ((t * val) == me) {
+            /* this is stupid - all I want is to look for a remainder ... 
+               but most compilers are too stupid and generate an extra modulus
+               instruction for "if (me % val)".
+               Even if most divide instructions already leave the remainder in
+               some register.
+               Therefore I use a multiplication which is faster than a modulo
+               on most machines. Hint to GNU people :-)
+            */
+            if ((t * val) == me) {
 #endif
-		RETURN ( __MKSMALLINT(t) );
-	    }
-	}
+                RETURN ( __MKSMALLINT(t) );
+            }
+        }
     } else {
-	if (__isFloatLike(aNumber)) {
-	    dval = __floatVal(aNumber);
-	    if (dval != 0.0) {
-		OBJ newFloat;
-		double val = (double)__intVal(self) / dval;
-
-		__qMKFLOAT(newFloat, val);
-		RETURN ( newFloat );
-	    }
-	}
+        if (__isFloatLike(aNumber)) {
+            dval = __floatVal(aNumber);
+            if (dval != 0.0) {
+                OBJ newFloat;
+                double val = (double)__intVal(self) / dval;
+
+                __qMKFLOAT(newFloat, val);
+                RETURN ( newFloat );
+            }
+        }
     }
 %}.
     aNumber isInteger ifTrue:[
-	aNumber == 0 ifTrue:[
-	    ^ DivisionByZeroSignal raise.
-	].
-	^ Fraction numerator:self denominator:aNumber
+        aNumber == 0 ifTrue:[
+            ^ DivisionByZeroSignal raiseRequest.
+        ].
+        ^ Fraction numerator:self denominator:aNumber
     ].
     ^ aNumber quotientFromInteger:self
 
@@ -501,59 +501,59 @@
     INT dividend, divisor, rslt;
 
     if (__isSmallInteger(aNumber)) {
-	divisor = __intVal(aNumber);
-	if (divisor != 0) {
-	    dividend = __intVal(self);
-	    rslt = dividend / divisor;
-	    /*
-	     * Optimized to speed up positive result
-	     */
-	    if (rslt <= 0) {
-		if (rslt == 0) {
-		    if (dividend * divisor < 0) {
-			/*
-			 * result (negative) has been truncated toward 0.
-			 * Return -1, because we truncate toward negative inf.
-			 */
-			 rslt = -1;
-		    }
-		} else {
-		    /*
-		     * If result (negative) has been truncated toward 0,
-		     * subtract 1, beacuse we truncate toward negative inf.
-		     */
-		    if (divisor > 0) {
-			if (rslt * divisor > dividend) {        
-			    rslt--;
-			}
-		    } else {
-			if (rslt * divisor < dividend) {        
-			    rslt--;
-			}
-		    }
-		}
-	    }
-	    RETURN ( __MKSMALLINT(rslt) );
-	}
+        divisor = __intVal(aNumber);
+        if (divisor != 0) {
+            dividend = __intVal(self);
+            rslt = dividend / divisor;
+            /*
+             * Optimized to speed up positive result
+             */
+            if (rslt <= 0) {
+                if (rslt == 0) {
+                    if (dividend * divisor < 0) {
+                        /*
+                         * result (negative) has been truncated toward 0.
+                         * Return -1, because we truncate toward negative inf.
+                         */
+                         rslt = -1;
+                    }
+                } else {
+                    /*
+                     * If result (negative) has been truncated toward 0,
+                     * subtract 1, beacuse we truncate toward negative inf.
+                     */
+                    if (divisor > 0) {
+                        if (rslt * divisor > dividend) {        
+                            rslt--;
+                        }
+                    } else {
+                        if (rslt * divisor < dividend) {        
+                            rslt--;
+                        }
+                    }
+                }
+            }
+            RETURN ( __MKSMALLINT(rslt) );
+        }
     } else {
-	if (__isFraction(aNumber)) {
-	    OBJ t;
-	    INT num, den;
-
-	    t = __FractionInstPtr(aNumber)->f_numerator;
-	    if (__isSmallInteger(t)) {
-		num = __intVal(t);
-		t = __FractionInstPtr(aNumber)->f_denominator;
-		if (__isSmallInteger(t)) {
-		    den = __intVal(t);
-		    RETURN ( __MKSMALLINT(__intVal(self) * den / num ));
-		}
-	    }
-	}
+        if (__isFraction(aNumber)) {
+            OBJ t;
+            INT num, den;
+
+            t = __FractionInstPtr(aNumber)->f_numerator;
+            if (__isSmallInteger(t)) {
+                num = __intVal(t);
+                t = __FractionInstPtr(aNumber)->f_denominator;
+                if (__isSmallInteger(t)) {
+                    den = __intVal(t);
+                    RETURN ( __MKSMALLINT(__intVal(self) * den / num ));
+                }
+            }
+        }
     }
 %}.
     (aNumber = 0) ifTrue:[
-	^ DivisionByZeroSignal raise.
+        ^ DivisionByZeroSignal raiseRequest.
     ].
     ^ self retry:#// coercing:aNumber
 
@@ -587,32 +587,32 @@
     INT dividend, divisor, rem;
 
     if (__isSmallInteger(aNumber)
-	&& (divisor = __intVal(aNumber)) != 0) {
-	/*
-	 * Note that the sign of something modulo a negative number is undefined
-	 * in C!
-	 */
-	dividend = __intVal(self);
-	rem = dividend % divisor;
-	if (rem) {
-	    if ((rem < 0) != (divisor < 0)) {
-		/* sign of remainder is different from sign of divisor */
-		rem = -rem;
-	    }
-	    if ((dividend < 0) != (divisor < 0)) {
-		/* different signs, so division would have returned a
-		 * negative number. 
-		 * C rounds toward zero, this code will simulate
-		 * rounding towards negative infinity.
-		 */
-		rem = divisor - rem;
-	    }
-	}
-	RETURN ( __MKSMALLINT(rem) );
+        && (divisor = __intVal(aNumber)) != 0) {
+        /*
+         * Note that the sign of something modulo a negative number is undefined
+         * in C!
+         */
+        dividend = __intVal(self);
+        rem = dividend % divisor;
+        if (rem) {
+            if ((rem < 0) != (divisor < 0)) {
+                /* sign of remainder is different from sign of divisor */
+                rem = -rem;
+            }
+            if ((dividend < 0) != (divisor < 0)) {
+                /* different signs, so division would have returned a
+                 * negative number. 
+                 * C rounds toward zero, this code will simulate
+                 * rounding towards negative infinity.
+                 */
+                rem = divisor - rem;
+            }
+        }
+        RETURN ( __MKSMALLINT(rem) );
     }
 %}.
     (aNumber = 0) ifTrue:[
-	^ DivisionByZeroSignal raise.
+        ^ DivisionByZeroSignal raiseRequest.
     ].
     ^ self retry:#\\ coercing:aNumber
 
@@ -678,29 +678,29 @@
     INT val;
 
     if (__isSmallInteger(aNumber)) {
-	val = __intVal(aNumber);
-	if (val != 0) {
-	    RETURN ( __MKSMALLINT(__intVal(self) / val) );
-	}
+        val = __intVal(aNumber);
+        if (val != 0) {
+            RETURN ( __MKSMALLINT(__intVal(self) / val) );
+        }
     } else {
-	if (__isFraction(aNumber)) {
-	    OBJ t;
-	    INT num, den;
-
-	    t = __FractionInstPtr(aNumber)->f_numerator;
-	    if (__isSmallInteger(t)) {
-		num = __intVal(t);
-		t = __FractionInstPtr(aNumber)->f_denominator;
-		if (__isSmallInteger(t)) {
-		    den = __intVal(t);
-		    RETURN ( __MKSMALLINT(__intVal(self) * den / num ));
-		}
-	    }
-	}
+        if (__isFraction(aNumber)) {
+            OBJ t;
+            INT num, den;
+
+            t = __FractionInstPtr(aNumber)->f_numerator;
+            if (__isSmallInteger(t)) {
+                num = __intVal(t);
+                t = __FractionInstPtr(aNumber)->f_denominator;
+                if (__isSmallInteger(t)) {
+                    den = __intVal(t);
+                    RETURN ( __MKSMALLINT(__intVal(self) * den / num ));
+                }
+            }
+        }
     }
 %}.
     (aNumber = 0) ifTrue:[
-	^ DivisionByZeroSignal raise.
+        ^ DivisionByZeroSignal raiseRequest.
     ].
     ^ self retry:#quo: coercing:aNumber
 
@@ -2897,5 +2897,5 @@
 !SmallInteger class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/SmallInteger.st,v 1.114 1999-05-12 10:19:01 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/SmallInteger.st,v 1.115 1999-07-26 09:11:55 stefan Exp $'
 ! !