normal


normal, a C++ code which returns a sequence of normally distributed pseudorandom numbers.

The code is based on the Box-Muller transformation to convert pairs of uniformly distributed random values to pairs of normally distributed random values.

Licensing:

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

Languages:

normal is available in a C version and a C++ version and a Fortran90 version and a MATLAB version and an Octave version and a Python version.

Related Data and Programs:

normal_test

asa183, a C++ code which implements the Wichman-Hill pseudorandom number generator.

cpp_random, a C++ code which illustrates the use of the C++ random number generator routines.

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

hammersley, a C++ code which computes elements of a Hammersley Quasi Monte Carlo (QMC) sequence, using a simple interface.

random_sorted, a C++ code which generates vectors of random values which are already sorted.

ranlib, a C++ code which produces random samples from Probability Density Functions (PDF's), including Beta, Chi-square Exponential, F, Gamma, Multivariate normal, Noncentral chi-square, Noncentral F, Univariate normal, random permutations, Real uniform, Binomial, Negative Binomial, Multinomial, Poisson and Integer uniform, by Barry Brown and James Lovato.

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

truncated_normal, a C++ code which works with the truncated normal distribution over [A,B], or [A,+oo) or (-oo,B], returning the probability density function (PDF), the cumulative density function (CDF), the inverse CDF, the mean, the variance, and sample values.

uniform, a C++ code which computes elements of a sequence of pseudorandom uniformly distributed values.

van_der_corput, a C++ code which computes van der Corput sequences.

Reference:

  1. Paul Bratley, Bennett Fox, Linus Schrage,
    A Guide to Simulation,
    Second Edition,
    Springer, 1987,
    ISBN: 0387964673.
  2. Bennett Fox,
    Algorithm 647: Implementation and Relative Efficiency of Quasirandom Sequence Generators,
    ACM Transactions on Mathematical Software,
    Volume 12, Number 4, December 1986, pages 362-376.
  3. Donald Knuth,
    The Art of Computer Programming,
    Volume 2, Seminumerical Algorithms,
    Third Edition,
    Addison Wesley, 1997,
    ISBN: 0201896842.
  4. Pierre LEcuyer,
    Random Number Generation,
    in Handbook of Simulation,
    edited by Jerry Banks,
    Wiley, 1998,
    ISBN: 0471134031,
    LC: T57.62.H37.
  5. Peter Lewis, Allen Goodman, James Miller,
    A Pseudo-Random Number Generator for the System/360,
    IBM Systems Journal,
    Volume 8, 1969, pages 136-143.

Source Code:


Last revised on 29 March 2020.