The main PCG engine.
Output function RXS -- random xorshift
Output function RXS M -- random xorshift, mcg multiply.
Output function RXS M XS -- random xorshift, mcg multiply, fixed xorshift
Output function XSH RR -- high xorshift, followed by a random rotate
Output function XSH RS -- high xorshift, followed by a random shift
Output function XSL RR -- fixed xorshift (to low bits), random rotate
MCG Generator.
OneSeq Generator.
SetSeq Generator.
The main PCG engine.
A D port of the PCG pseudorandom number generator at http://pcg-random.org
Most of the functionality is tested against the PCG C++ implementation to ensure that the output matches. That is, the D generators should produce the same output as the C++ ones. The exception is default-initialized, unseeded generators, due to D not allowing a default constructor on structs.
64-bit generators are not supported yet, as they require the (currently unsupported) 128-bit integer types that D has not yet implemented.
Unique generators are also not supported. Seed with std.random.unpredictableSeed instead.
See: https://www.pcg-random.org/index.html Origin: https://github.com/ColonelThirtyTwo/d-pcg