randlc, a Python code which implements a version of the random number generator (RNG) used by the NAS Parallel Benchmarks.

The generator has the form

        X(K+1) = A * X(K) mod 2^46
where the suggested value of the multiplier A is 5^13 = 1220703125.

This scheme generates 2^44 numbers before repeating.

The web site for the NAS Parallel Benchmarks is https://www.nas.nasa.gov/Resources/Software/npb.html.


The computer code and data files described and made available on this web page are distributed under the MIT license


randlc is available in a C version and a C++ version and a FORTRAN90 version and a MATLAB version and a Python version.

Related Data and Programs:

asa183, a Python code which implements the Wichman-Hill random number generator (RNG).

halton, a Python code which computes elements of a Halton Quasi Monte Carlo (QMC) sequence, using a simple interface.

normal, a Python code which computes a sequence of pseudorandom normally distributed values.

rnglib, a Python code which implements a random number generator (RNG) with splitting facilities, allowing multiple independent streams to be computed, by L'Ecuyer and Cote.

uniform, a Python code which computes elements of a pseudorandom sequence.

van_der_corput, a Python code which computes elements of a 1D van der Corput Quasi Monte Carlo (QMC) sequence using a simple interface.


  1. David Bailey, Eric Barszcz, John Barton, D Browning, Robert Carter, Leonardo Dagum, Rod Fatoohi, Samuel Fineberg, Paul Frederickson, Thomas Lasinski, Robert Schreiber, Horst Simon, V Venkatakrishnan, Sisira Weeratunga,
    The NAS Parallel Benchmarks,
    RNR Technical Report RNR-94-007, March 1994.
  2. Donald Knuth,
    The Art of Computer Programming, Volume 2, Seminumerical Algorithms,
    Third Edition,
    Addison Wesley, 1997,
    ISBN: 0201896842,
    LC: QA76.6.K64.

Source Code:

Last revised on 22 August 2015