22 lines
1.1 KiB
Text
22 lines
1.1 KiB
Text
|
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
|
||
|
|
||
|
The paper describes a new algorithm SplitMix for splittable
|
||
|
pseudorandom number generator that is quite fast: 9 64 bit
|
||
|
arithmetic/logical operations per 64 bits generated.
|
||
|
|
||
|
SplitMix is tested with two standard statistical test suites
|
||
|
(DieHarder and TestU01, this implementation only using the former) and
|
||
|
it appears to be adequate for "everyday" use, such as Monte Carlo
|
||
|
algorithms and randomized data structures where speed is important.
|
||
|
|
||
|
In particular, it should not be used for cryptographic or security
|
||
|
applications, because generated sequences of pseudorandom values are
|
||
|
too predictable (the mixing functions are easily inverted, and two
|
||
|
successive outputs suffice to reconstruct the internal state).
|