Expand description
The PCG random number generators.
This is a native Rust implementation of a small selection of PCG generators. The primary goal of this crate is simple, minimal, well-tested code; in other words it is explicitly not a goal to re-implement all of PCG.
This crate provides:
Pcg32
akaLcg64Xsh32
, officially known aspcg32
, a general purpose RNG. This is a good choice on both 32-bit and 64-bit CPUs (for 32-bit output).Pcg64
akaLcg128Xsl64
, officially known aspcg64
, a general purpose RNG. This is a good choice on 64-bit CPUs.Pcg64Mcg
akaMcg128Xsl64
, officially known aspcg64_fast
, a general purpose RNG using 128-bit multiplications. This has poor performance on 32-bit CPUs but is a good choice on 64-bit CPUs for both 32-bit and 64-bit output.
Both of these use 16 bytes of state and 128-bit seeds, and are considered value-stable (i.e. any change affecting the output given a fixed seed would be considered a breaking change to the crate).
Structs
A PCG random number generator (XSH RR 64/32 (LCG) variant).
A PCG random number generator (XSL RR 128/64 (LCG) variant).
A PCG random number generator (XSL 128/64 (MCG) variant).
Type Definitions
Lcg64Xsh32
is also officially known as pcg32
.Lcg128Xsl64
is also officially known as pcg64
.A friendly name for
Mcg128Xsl64
(also known as pcg64_fast
).