Pure Haskell implementation of SplitMix described in
Guy L. Steele, Jr., Doug Lea, and Christine H. Flood. 2014. Fast splittable pseudorandom number generators. In Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & Applications (OOPSLA '14). ACM, New York, NY, USA, 453-472. DOI: https://doi.org/10.1145/2660193.2660195
In simple benchmarks generating Word64
: splitfix
is 3-7x faster than tf-random
and 15-70x faster than random
. (The difference aren't as huge, when generating Int
)
Another difference is the fact that splitmix
generates 64bit integers (Word64
). tf-random
generates 32bit (Word32
) and random
ordinary integers (Int
). Generating 64 bit integers "natively" is nice, as we need only single step to generate Double
, which are useful for Monte-Carlo simulations.
splitmix
also performs well in dieharder tests.