checkin from browser
authorClaus Gittinger <cg@exept.de>
Thu, 07 Dec 1995 22:36:14 +0100
changeset 142 7f9b4315058c
parent 141 2804943fc6f0
child 143 082764fb5448
checkin from browser
Random.st
--- a/Random.st	Thu Dec 07 22:30:55 1995 +0100
+++ b/Random.st	Thu Dec 07 22:36:14 1995 +0100
@@ -24,8 +24,6 @@
 see notice in (Random>>documentation)
 "
 
-'From Smalltalk/X, Version:2.10.4 on 25-feb-1995 at 9:35:41 am'!
-
 Stream subclass:#Random
 	 instanceVariableNames:'seed'
 	 classVariableNames:''
@@ -63,10 +61,6 @@
 "
 !
 
-version
-    ^ '$Header: /cvs/stx/stx/libbasic2/Random.st,v 1.12 1995-11-11 15:21:33 cg Exp $'
-!
-
 documentation
 "
     random numbers - thanks to Steves GNU Smalltalk
@@ -93,58 +87,20 @@
     ^self basicNew setSeed
 ! !
 
-!Random methodsFor:'testing'!
-
-chiSquare
-    "perform a chiSquare-test on the receiver"
-
-    "returns on Sun3 93.40000000000009"
-    ^self chiSquare: 1000 range: 100
-
-    "Random new chiSquare"
-!
-
-chiSquare: n range: r
-    | f t s |
-    s := 1234567.
-    f := Array new: r + 1.
-    1 to: r + 1 do: [ :i | f at: i put: 0 ].
-    n timesRepeat:
-	[ s := (seed * 31415821) + 1 bitAnd: 16r3FFFFFFF.
-	  t := s \\ r.
-	  f at: t + 1 put: (f at: t + 1) + 1 ].
-    t := 0.
-    1 to: r do: [ :i | t := t + (f at: i) squared ].
-    ^r asFloat * t / n - n
-!
-
-isReadable
-    ^ true
-!
-
-atEnd
-    "instances of Random can always give more numbers"
-
-    ^ false
-! !
-
 !Random methodsFor:'accessing-reading'!
 
-nextInteger
-    "return the next integral random number,
-     in the range 0 .. 16r3FFFFFFF.
-     From Sedgewick's 'Algorithms', based on Lehmer's method"
+next
+    "return the next random number in the range 0..1"
 
-    "the times: is a kludge - times does not convert to LargeInteger on overflow"
     seed := (seed times:31415821) + 1 bitAnd: 16r3FFFFFFF.
-    ^ seed
+    ^ self nextInteger / 16r3FFFFFFF asFloat
 
     "|r|
      r := Random new.
-     Transcript showCr:r nextInteger.
-     Transcript showCr:r nextInteger.
-     Transcript showCr:r nextInteger.
-     Transcript showCr:r nextInteger.
+     Transcript showCr:r next.
+     Transcript showCr:r next.
+     Transcript showCr:r next.
+     Transcript showCr:r next.
     "
 !
 
@@ -169,21 +125,6 @@
     "
 !
 
-next
-    "return the next random number in the range 0..1"
-
-    seed := (seed times:31415821) + 1 bitAnd: 16r3FFFFFFF.
-    ^ self nextInteger / 16r3FFFFFFF asFloat
-
-    "|r|
-     r := Random new.
-     Transcript showCr:r next.
-     Transcript showCr:r next.
-     Transcript showCr:r next.
-     Transcript showCr:r next.
-    "
-!
-
 nextBoolean
     "return true or false by random"
 
@@ -200,6 +141,24 @@
     "
 !
 
+nextInteger
+    "return the next integral random number,
+     in the range 0 .. 16r3FFFFFFF.
+     From Sedgewick's 'Algorithms', based on Lehmer's method"
+
+    "the times: is a kludge - times does not convert to LargeInteger on overflow"
+    seed := (seed times:31415821) + 1 bitAnd: 16r3FFFFFFF.
+    ^ seed
+
+    "|r|
+     r := Random new.
+     Transcript showCr:r nextInteger.
+     Transcript showCr:r nextInteger.
+     Transcript showCr:r nextInteger.
+     Transcript showCr:r nextInteger.
+    "
+!
+
 nextIntegerBetween:start and:stop
     "return an integral random between start and stop"
 
@@ -247,3 +206,43 @@
     seed := Time secondClock bitAnd: 16r3FFFFFFF
 ! !
 
+!Random methodsFor:'testing'!
+
+atEnd
+    "instances of Random can always give more numbers"
+
+    ^ false
+!
+
+chiSquare
+    "perform a chiSquare-test on the receiver"
+
+    "returns on Sun3 93.40000000000009"
+    ^self chiSquare: 1000 range: 100
+
+    "Random new chiSquare"
+!
+
+chiSquare: n range: r
+    | f t s |
+    s := 1234567.
+    f := Array new: r + 1.
+    1 to: r + 1 do: [ :i | f at: i put: 0 ].
+    n timesRepeat:
+	[ s := (seed * 31415821) + 1 bitAnd: 16r3FFFFFFF.
+	  t := s \\ r.
+	  f at: t + 1 put: (f at: t + 1) + 1 ].
+    t := 0.
+    1 to: r do: [ :i | t := t + (f at: i) squared ].
+    ^r asFloat * t / n - n
+!
+
+isReadable
+    ^ true
+! !
+
+!Random class methodsFor:'documentation'!
+
+version
+    ^ '$Header: /cvs/stx/stx/libbasic2/Random.st,v 1.13 1995-12-07 21:36:14 cg Exp $'
+! !