Algorithm 488: A Gaussian pseudo-random number generator
23. R. P. Brent,
Algorithm 488: A Gaussian pseudo-random number generator [G5],
Communications of the ACM 17 (1974), 704-706.
Abstract:
dvi (2K),
pdf (77K).
Paper:
pdf (304K).
Abstract
We present an algorithm GRAND for generating normally distributed
pseudo-random numbers, assuming the existence of a source of uniform
random numbers. The method is exact, apart from the effect of
rounding errors. The idea of using a rejection technique to avoid any
elementary function evaluations is due to
Von Neumann and Forsythe,
but our implementation requires less uniform samples per result
than previous implementations. In fact, only about 1.38 uniform samples
are required per normal variate.
Comment
GRAND and a uniform generator RAND are available in a compressed
tar file and a
zipped file.
You can also download text files
GRAND and
RAND directly.
RAND is no longer recommended as a general-purpose uniform
random number generator because the lags in
the three-term recurrence are too small
[217].
Implementations of some more recent (and probably faster and/or better)
uniform and normal random number
generators are available here.
Later papers on random number generation include
[132,
133,
141,
170,
185,
217,
218,
238].
In particular, the genesis of this paper is described
in [238].
Go to next publication
Return to Richard Brent's index page