# 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.

### 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:

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,
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.