xorshift-2: Haskell implementation of the xorshift random generator.



This module contains a 32 bit Xorshift random generator. Use this if you need a 32 bit random generator, usually Xorshift itself is a good choice for your platform. This generator has a period of 2^32-1 bits if initialized with a value different from 0.



newtype Xorshift32 Source

Xorshift generator with 32 bits. This Xorshift generator uses first a left shift, then a right shift and again a left shift. It uses the parameters 13, 17 and 5. See the paper for more details on how the parameters affect the generation of random numbers.

The generator has a periode of 2^32-1, please notice that the generator has to be initialized with a value different from 0, elseway all future values will be zero as well.

Please notice, that the function split is not implemented and will result in a runtime error.


Xorshift32 Int32 

newXorshift32 :: IO Xorshift32Source

Generates a new Xorshift32 from the current time.

makeXorshift32 :: Integral a => a -> Xorshift32Source

Generate a new Xorshift32 generator. This is essentially a wrapper around the constructor.

getInt32 :: Xorshift32 -> Int32Source

Get the raw contents of the random generator. This function is preferable over direct usage of the constructor itself, as the internal representation of the random generator may change in future releases.