## Mersenne Twister
A uniform pseudorandom number generator - version 1.0.1

Download | Version history
tar.gz | zip

The Mersenne Twister is a uniform pseudorandom number generator (for both real and integers), which has been developed by Makoto Matsumoto and Takuji Nishimura during 1996-1997.

The generated numbers have a period of `219937-1`. They are uniformly distributed over the interval `[0, 1]` in the real case and over the interval `[-231, 231-1]` in the integer case.

> Caveat: As Clean does not have 32-bit unsigned integers, the integer version of the Mersenne Twister returns 32-bit signed integers. Nevertheless in the real case the output of the Clean program equals the output of any reference implementation.

We refer to the Mersenne Twister Homepage for details and implementations in other languages.

This implementation in Clean is a rewrite of a C program by T. Nishimura which can be found on-line or e. g. in the paper

> Mersenne Twister: A 623-dimensionally equidistributed uniform pseudorandom number generator
> by M. Matsumoto and T. Nishimura in ACM Transactions on Modeling and Computer Simulation,
> vol. 8, no. 1, January 1998, pp. 3-30. (PostScript)

Comments, remarks and suggestions are very welcome and should be made directly to Thorsten Zoerner (zoerner@cs.kun.nl).

## `MersenneTwister`

function | name | types/remarks
`getRandReal` | real pseudorandom number generator | `Int -> [Real]` Input: Any nonzero integer as a seed value. Returns an infinite list of real numbers, uniformly distributed over the interval `[0, 1]`.
`getRandInt` | signed integer pseudorandom number generator | `Int -> [Int]` Input: Any nonzero integer as a seed value. Returns an infinite list of signed integer numbers, uniformly distributed over the interval `[-231, 231-1]`.