Acknowledgements

Julia prior art

To our knowledge, adapting the explicit-state RNG API pattern common in functional programming to Julia was first explored in ImmutableRNGs.jl.[immutable] Here, a draw returns both a sample and the next state without mutating the supplied state. We acknowledge Uwe Hernandez Acosta's work as prior art for this aspect of PureRNGs' API.

Random123.jl[random123jl] and PhiloxRNG.jl[philoxrng] provided Julia implementation and performance references during development. Random123.jl exposes counter-based generators through Julia's Random interface. PhiloxRNG.jl exposes stateless Philox functions for CPU and GPU use.

RNGTest.jl[rngtest] provides the Julia interface used for our TestU01 and BigCrush checks. We thank these packages' authors and contributors for their work.

Algorithms and statistical tests

Philox and Threefry come from the work of Salmon, Moraes, Dror, and Shaw[random123paper] and the Random123 reference implementation.[random123] Our core tests use Random123's known-answer vectors. ChaCha follows Daniel J. Bernstein's design.[chacha]

CPU normal sampling uses Michael J. Wichura's AS241 approximation.[wichura] Native GPU normal sampling uses Mike Giles' inverse-error-function approximation.[giles] These approximation methods and their published coefficients are prior work, not new algorithms introduced by PureRNGs.

Our statistical validation uses TestU01, by Pierre L'Ecuyer and Richard Simard,[testu01] and PractRand.[practrand] The Reproducibility page describes the scope of that evidence.

References

Software citations identify the versions consulted, not runtime dependencies or guarantees of API compatibility. Software repositories were accessed on 22 September 2026.