Integer.st
changeset 3638 edf314b220d2
parent 3455 2b19e1e70adc
child 3639 c4fbb700a569
--- a/Integer.st	Thu Jul 09 10:25:14 1998 +0200
+++ b/Integer.st	Thu Jul 09 10:25:57 1998 +0200
@@ -448,8 +448,8 @@
      leftShift if shiftCount > 0; rightShift otherwise.
 
      Notice: the result of bitShift: on negative receivers is not 
-	     defined in the language standard (since the implementation
-	     is free to choose any internal representation for integers)"
+             defined in the language standard (since the implementation
+             is free to choose any internal representation for integers)"
 
     |result 
      prev       "{ Class: SmallInteger }"
@@ -464,152 +464,152 @@
      nDigits    "{ Class: SmallInteger }" |
 
     shiftCount > 0 ifTrue:[
-	"left shift"
+        "left shift"
 
-	digitShift := shiftCount // 8.
-	bitShift := shiftCount \\ 8.
-	n := self digitLength.
+        digitShift := shiftCount // 8.
+        bitShift := shiftCount \\ 8.
+        n := self digitLength.
 
-	"
-	 modulo 8 shifts can be done faster ...
-	"
-	bitShift == 0 ifTrue:[
-	    result := self class basicNew numberOfDigits:n + digitShift.
-	    result sign:self sign.
-	    result digits replaceFrom:(digitShift + 1) with:self digits.
-	    "
-	     no normalize needed, since receiver was already normalized
-	    "
-	    ^ result
-	].
+        "
+         modulo 8 shifts can be done faster ...
+        "
+        bitShift == 0 ifTrue:[
+            result := self class basicNew numberOfDigits:n + digitShift.
+            result sign:self sign.
+            result digits replaceFrom:(digitShift + 1) with:self digits.
+            "
+             no normalize needed, since receiver was already normalized
+            "
+            ^ result
+        ].
 
-	"
-	 less-than-8 shifts can be done faster ...
-	"
-	digitShift == 0 ifTrue:[
-	    n := n + 1.
-	    result := self class basicNew numberOfDigits:n.
-	    result sign:self sign.
-	    prev := 0.
-	    1 to:n-1 do:[:index |
-		byte := self digitAt:index.
-		byte := (byte bitShift:bitShift) bitOr:prev.
-		result digitAt:index put:(byte bitAnd:16rFF).
-		prev := byte bitShift:-8.
-	    ].
-	    result digitAt:n put:prev.
-	    "
-	     might have stored a 0-byte ...
-	    "
-	    prev == 0 ifTrue:[
-		^ result compressed
-	    ].
-	    ^ result.
-	].
+        "
+         less-than-8 shifts can be done faster ...
+        "
+        digitShift == 0 ifTrue:[
+            n := n + 1.
+            result := self class basicNew numberOfDigits:n.
+            result sign:self sign.
+            prev := 0.
+            1 to:n-1 do:[:index |
+                byte := self digitAt:index.
+                byte := (byte bitShift:bitShift) bitOr:prev.
+                result digitAt:index put:(byte bitAnd:16rFF).
+                prev := byte bitShift:-8.
+            ].
+            result digitAt:n put:prev.
+            "
+             might have stored a 0-byte ...
+            "
+            prev == 0 ifTrue:[
+                ^ result compressed
+            ].
+            ^ result.
+        ].
 
-	"
-	 slow case ...
-	"
-	n := n + digitShift + 1.
-	result := self class basicNew numberOfDigits:n.
-	result sign:self sign.
-	byte := self digitAt:1.
-	byte := (byte bitShift:bitShift) bitAnd:16rFF.
-	result digitAt:(digitShift + 1) put:byte.
-	revShift := -8 + bitShift.
-	nDigits := self digitLength.
-	2 to:nDigits do:[:index |
-	    byte := self digitAt:index.
-	    byte2 := self digitAt:index-1.
-	    byte := byte bitShift:bitShift.
-	    byte2 := byte2 bitShift:revShift.
-	    byte := (byte bitOr:byte2) bitAnd:16rFF.
-	    result digitAt:(index + digitShift) put:byte.
-	].
-	byte2 := self digitAt:nDigits.
-	byte2 := (byte2 bitShift:revShift) bitAnd:16rFF.
-	result digitAt:(nDigits + digitShift + 1) put:byte2.
-	"
-	 might have stored a 0-byte ...
-	"
-	byte2 == 0 ifTrue:[
-	    ^ result compressed
-	].
-	^ result
+        "
+         slow case ...
+        "
+        n := n + digitShift + 1.
+        result := self class basicNew numberOfDigits:n.
+        result sign:self sign.
+        byte := self digitAt:1.
+        byte := (byte bitShift:bitShift) bitAnd:16rFF.
+        result digitAt:(digitShift + 1) put:byte.
+        revShift := -8 + bitShift.
+        nDigits := self digitLength.
+        2 to:nDigits do:[:index |
+            byte := self digitAt:index.
+            byte2 := self digitAt:index-1.
+            byte := byte bitShift:bitShift.
+            byte2 := byte2 bitShift:revShift.
+            byte := (byte bitOr:byte2) bitAnd:16rFF.
+            result digitAt:(index + digitShift) put:byte.
+        ].
+        byte2 := self digitAt:nDigits.
+        byte2 := (byte2 bitShift:revShift) bitAnd:16rFF.
+        result digitAt:(nDigits + digitShift + 1) put:byte2.
+        "
+         might have stored a 0-byte ...
+        "
+        byte2 == 0 ifTrue:[
+            ^ result compressed
+        ].
+        ^ result
     ].
 
     shiftCount < 0 ifTrue:[
-	"right shift"
+        "right shift"
 
-	digitShift := shiftCount negated // 8.
-	bitShift := shiftCount negated \\ 8.
-	n := self digitLength.
+        digitShift := shiftCount negated // 8.
+        bitShift := shiftCount negated \\ 8.
+        n := self digitLength.
 
-	digitShift >= n ifTrue:[
-	    ^ 0
-	].
+        digitShift >= n ifTrue:[
+            ^ 0
+        ].
 
-	"
-	 modulo 8 shifts can be done faster ...
-	"
-	bitShift == 0 ifTrue:[
-	    n := n-digitShift.
-	    result := self class basicNew numberOfDigits:n.
-	    result sign:self sign.
-	    result digits replaceFrom:1 with:self digits startingAt:(digitShift + 1) .
-	    n <= SmallInteger maxBytes ifTrue:[
-		^ result compressed
-	    ].
-	    ^ result
-	].
+        "
+         modulo 8 shifts can be done faster ...
+        "
+        bitShift == 0 ifTrue:[
+            n := n-digitShift.
+            result := self class basicNew numberOfDigits:n.
+            result sign:self sign.
+            result digits replaceFrom:1 to:n with:self digits startingAt:(digitShift + 1) .
+            n <= SmallInteger maxBytes ifTrue:[
+                ^ result compressed
+            ].
+            ^ result
+        ].
 
-	"
-	 less-than-8 shifts can be done faster ...
-	"
-	digitShift == 0 ifTrue:[
-	    result := self class basicNew numberOfDigits:n.
-	    result sign:self sign.
-	    prev := 0.
-	    bitShift := bitShift negated.
-	    revShift := 8 + bitShift.
-	    n to:1 by:-1 do:[:index |
-		byte := self digitAt:index.
-		next := (byte bitShift:revShift) bitAnd:16rFF.
-		byte := (byte bitShift:bitShift) bitOr:prev.
-		result digitAt:index put:(byte bitAnd:16rFF).
-		prev := next.
-	    ].
-	    (n <= 5) ifTrue:[
-		^ result compressed
-	    ].
-	    ^ result
-	].
+        "
+         less-than-8 shifts can be done faster ...
+        "
+        digitShift == 0 ifTrue:[
+            result := self class basicNew numberOfDigits:n.
+            result sign:self sign.
+            prev := 0.
+            bitShift := bitShift negated.
+            revShift := 8 + bitShift.
+            n to:1 by:-1 do:[:index |
+                byte := self digitAt:index.
+                next := (byte bitShift:revShift) bitAnd:16rFF.
+                byte := (byte bitShift:bitShift) bitOr:prev.
+                result digitAt:index put:(byte bitAnd:16rFF).
+                prev := next.
+            ].
+            (n <= 5) ifTrue:[
+                ^ result compressed
+            ].
+            ^ result
+        ].
 
-	"
-	 slow case ...
-	"
-	nn := n-digitShift.
-	result := self class basicNew numberOfDigits:nn.
-	result sign:self sign.
+        "
+         slow case ...
+        "
+        nn := n-digitShift.
+        result := self class basicNew numberOfDigits:nn.
+        result sign:self sign.
 
-	prev := 0.
-	bitShift := bitShift negated.
-	revShift := 8 + bitShift.
-	n to:(1 + digitShift) by:-1 do:[:index |
-	    byte := self digitAt:index.
-	    next := (byte bitShift:revShift) bitAnd:16rFF.
-	    byte := (byte bitShift:bitShift) bitOr:prev.
-	    result digitAt:(index - digitShift) put:byte.
-	    prev := next.
-	].
-	"the last stored byte ..."
-	^ result compressed
+        prev := 0.
+        bitShift := bitShift negated.
+        revShift := 8 + bitShift.
+        n to:(1 + digitShift) by:-1 do:[:index |
+            byte := self digitAt:index.
+            next := (byte bitShift:revShift) bitAnd:16rFF.
+            byte := (byte bitShift:bitShift) bitOr:prev.
+            result digitAt:(index - digitShift) put:byte.
+            prev := next.
+        ].
+        "the last stored byte ..."
+        ^ result compressed
     ].
 
     ^ self "no shift"
 
-    "Modified: / 5.11.1996 / 14:06:37 / cg"
     "Modified: / 18.12.1997 / 17:17:29 / stefan"
+    "Modified: / 8.7.1998 / 12:45:24 / cg"
 !
 
 bitTest:anInteger
@@ -1517,5 +1517,5 @@
 !Integer class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Integer.st,v 1.81 1998-05-17 20:13:57 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Integer.st,v 1.82 1998-07-09 08:25:57 cg Exp $'
 ! !