[FIX] RandomFix-sr v2

Stephan Rudlof squeak-dev at lists.squeakfoundation.org
Thu Sep 26 02:50:29 UTC 2002


This is a multi-part message in MIME format.
--------------030605090503090006040700
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

I have forgotten a small fix in Random in the last version.

Greetings,

Stephan

"Change Set:		RandomFix-sr v2
Date:
		26 September 2002
Author:
		Stephan Rudlof


Random:
- corrected: >>seed: needs to call initialize just once.


>From the class comment of BRandom:

BRandom:
- simplified Random with corrected comments.
- faster as the original (more than 25%).
- no changed semantics
	(should give exactly the same results as Random (except for the errorneous
seed 0)).
- could replace Random (by merging the methods and removing obsolete inst
vars in Random).

Since Squeak Floats are working with 53 bits for the mantissa, Random
nextValue has been simplified (see BRandom nextValue).
Precision is sufficient...
	(16r7FFFFFFF * 16r000041A7) asFloat asInteger = (16r7FFFFFFF * 16r000041A7)
...since Float works with 53 bits and we need less than 48 (46 without sign
bit):
	(16r7FFFFFFF * 16r000041A7) hex '16r20D37FFFBE59'
.

The comments are corrected regarding the border cases (min and max values).


Test:

| bc rand irand |
bc _
[:r :num |
	num timesRepeat: [r next].
].

rand _ Random new.
irand _ BRandom seed: rand seed.
{
	{ [bc value: rand value: 100000] timeToRun. [bc value: irand value: 100000]
timeToRun }.
	{ rand next. irand next }
}


History:
v2
: Random>>seed: correction
v1
: BRandom stuff
"
-- 
Stephan Rudlof (sr at evolgo.de)
   "Genius doesn't work on an assembly line basis.
    You can't simply say, 'Today I will be brilliant.'"
    -- Kirk, "The Ultimate Computer", stardate 4731.3

--------------030605090503090006040700
Content-Type: application/x-gunzip;
 name="RandomFix-sr.2.cs.gz"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="RandomFix-sr.2.cs.gz"

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
DgAA
--------------030605090503090006040700--




More information about the Squeak-dev mailing list