State of PRNG code in GMP
lucier at purdue.edu
Wed Jun 3 02:43:27 UTC 2020
I'd like to point out some work by Pierre L'Ecuyer at the University of
Montreal on PRNG that impressed me and which formed the basis of
Scheme's SRFI 27:
The problems that L'Ecuyer is trying to overcome are
1. Each simulation typically requires several/many streams of PRNGs
that have mathematically provable independence properties over long
samples. (Each arrival queue and server in a server model, etc.)
2. To get confidence intervals, one would like to repeat the simulation
with a new independent set of streams of PRNGs.
So one needs independent streams (between simulations) and substreams
L'Ecuyer has developed Combined Multiple Recursive Random Number
Generators for this purpose (basically combining multiple Linear
Congruential Generators with various levels of state), as well as new
methods for implementing the so-called "spectral tests" to evaluate the
independence of random streams in high dimensions as described by Knuth,
AOCP, Volume 2.
His two most relevant papers might be:
Good Parameters and Implementations for Combined Multiple Recursive
Random Number Generators
and, to a lesser extent, AN OBJECT-ORIENTED RANDOM-NUMBER PACKAGEWITH
MANY LONG STREAMS AND SUBSTREAMS:
This message from L'Ecuyer to the SRFI 27 mail list claims that his
approach had been adopted by two large simulation vendors.
I don't know whether this is of interest to GMP developers.
More information about the gmp-devel