Mersenne Twister?

Andreas Raab andreas.raab at gmx.de
Thu Jan 26 08:03:47 UTC 2006


This is definitely relevant (I'm mostly looking for something with 
"large enough" periodicity). Thanks for posting it!

Cheers,
   - Andreas

Baveco, Hans wrote:
> Hi Andreas,
> 
> The attached squeak implementation of the TT800 algorithm (related to MT
> it seems, but with a period of 2^800 instead of 2^19937 -1) was send to
> the list in 1999, by (the late?) Dave N Smith. Maybe it is of use here?
> 
> Hans
>  
> 
> -----Original Message-----
> From: Andreas Raab [mailto:andreas.raab at gmx.de] 
> Sent: woensdag 25 januari 2006 8:00
> To: The general-purpose Squeak developers list
> Subject: Mersenne Twister?
> 
> Hi Folks -
> 
> Does anyone know a good (Squeak/Smalltalk) implementation of the
> Mersenne Twister? I have a task for which I don't really trust good ol' 
> Random and would like to use an alternative PRNG instead.
> 
> Thanks,
>    - Andreas
> 
> 
> 
> ------------------------------------------------------------------------
> 
> Baveco,  Dr. J.M.
> From:	David N. Smith (IBM) [dnsmith at watson.ibm.com]
> Sent:	Thursday, November 04, 1999 9:41 PM
> To:	squeak at cs.uiuc.edu
> Subject:	Re: TT800 (was RE: PRNGs  (was [Q] Project: Better performance for LargeIntegers))
> At 14:09 -0500 11/2/99, Jeff Szuhay wrote:
> 
>>>At 13:25 -0500 11/2/99, Jeff Szuhay wrote:
>>>
>>>>...SNIP...
>>>>and finally,
>>>>
>>>>tt800 source code: <http://random.mat.sbg.ac.at/ftp/pub/daa/tt800.c>
>>>
>>>Jeff:
>>>
>>>Can you check this link again? I can get to 
>>>http://random.mat.sbg.ac.at/ftp/pub but the daa directory is 
>>>missing and nothing else seems to have a tt800.c file.
>>
>>Oops...
>>
>>change .../daa/...  to ... /data/...
>>and the page will appear.
> 
> 
> OK, I got it and have converted it to Squeak (with some testing 
> assistance from Jeff). The code is attached. It's basically a 
> straight conversion from C. It uses, by its nature, 32-bit long 
> integers and is slow by a factor of about 30 relative to Squeak's 
> Random class.
> 
> References and abstracts to the papers are included in the class 
> comment. The original C code (less its tiny main program) is in a 
> method as a comment. There are class methods that test the generator 
> and also assure that it answers the same results as the C version.
> 
> This is a good example of why long integers need to be fast, and how 
> easy it is to hit that performance brick wall.
> 
> If you are using Random, you can try this by changing the class name 
> to RandomTT800. The #next method answers the next pseudo-random 
> number and #seed: resets the seed. The generator automatically self 
> seeds from the millisecond clock.
> 
> Dave
> 
> 
> 
> ------------------------------------------------------------------------
> 
> 




More information about the Squeak-dev mailing list