randu 0.9.0

RANDU MCG65539 random number generator
Documentation

RANDU

Crates.io License Crates.io Version Crates.io MSRV Safe Rust dependency status Documentation Downloads

Pseudorandom multiplicative congruential generator (MCG) used in 1960's and 1970's in the IBM Scientific Subroutine Library for IBM System/360 computers.

RANDU uses MCG coeficients a = 65539 ( 216 + 3 ) and m = 231. It can be implemented very quickly on 32-bit hardware in just 2 operations: wrapped multiplication by a and bit masking result using AND 0x7fffffff.

Returns non negative 31 bit integer. It fails the spectral test for dimensions greater than 2. RANDU produces very strong banding when used in 3 dimensions which can be used in GPU programming for visual effects.

References

https://en.wikipedia.org/wiki/RANDU

https://oeis.org/A096555

License

This is free and unencumbered software released into the public domain.

This code can be used under terms of CC0 or the Unlicense.

Unlicense logo