+ Pre-defined PCG generators, matching the original source code's definitions. + + PCG32 support multiple streams, PCG32OneSeq and PCG32Fast do not. PCG32Fast is slightly faster, but has a shorter period.
Output function RXS -- random xorshift
+ Output function RXS M -- random xorshift, mcg multiply
Outpur function RXS M XS -- random xorshift, mcg multiply, fixed xorshift
+ Output function XSH RR -- high xorshift, followed by a random rotate + + Fast. A good performer. Slightly better statistically than XSH RS.
Output function XSH RS -- high xorshift, followed by a random shift
+ Output function XSL RR -- fixed xorshift (to low bits), random rotate + + Useful for 128-bit types that are split across two CPU registers.
+ MCG Generator. + + No multi-stream support. Slightly faster, but smaller period.
+ OneSeq Generator. + + No multi-stream support.
+ SetSeq Generator. + + Has multi-stream support.
+ The main PCG engine. + + It takes several configurable parameters.
+ 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.