/splitmix

An implementation of the SplitMix algorithm for a splittable non-cryptographic random number generator in TypeScript.

Primary LanguageTypeScriptBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

SplitMix

This random number generator is NOT suitable for cryptographic applications.

Implements the SplitMix algorithm from Fast Splittable Pseudorandom Number Generators by Steele, Lea, and Flood.

See the API docs here.

This provides a splittable random number generator.

Both a functional and a mutable interface are provided. The functional interface matches the node-lcg library. It should be drop-in compatible. The node-lcg is based on Distributed random number generation by Burton and Page. As far as I know, its statistical properties haven't been tested with DieHard or TestU01 unlike the SplitMix algorithm (but not this implementation). Being from 1992 and based on a linear congruential generator, it is not likely to perform well statistically.

It is tested to produce the same values as the Haskell SplitMix implementation.