SPRNG is free and is easily
downloaded.
The download includes a test suite and
instructions for installation and use.
SPRNG can be installed without superuser privileges
in a user directory.
The library can
be used in both serial and parallel fortran, c and c++ programs.
| number | description | name | period |
|---|---|---|---|
| 0 | additive lagged Fibonacci generator (more) | lfg | 21310=10569 |
| 1 | 48-bit linear congruential generator with prime addend | lcg | 248=1014 |
| 2 | 64-bit linear congruential generator with prime addend (more) | lcg64 | 264=1019 |
| 3 | combined multiple recursive generator
combination of a prime modulus generator and a linear congruential generator. |
cmrg | 2219=1095 |
| 4 | multiplicative lagged Fibonacci generator | mlfg | 281=1024 |
| 5 | prime modulus linear congruential generator
requires the GNU multiprecision arithmetic library libgmp.a so is not installed by default |
pmlcg |
The "simple" interface supports one stream of random numbers per process. Each process draws from an independent stream of pseudorandom numbers. The "default" (not "simple") interface supports multiple random number streams per process.
All the generators included have been tested for correlations within and between streams and have also been tested in Ising and random walk simulations.
A sample c++ program runsprng.cpp illustrates use of the sprng library.