Work

The Ziggurat Method for Generating Random Variables

Year: 2000
Type: article
Abstract: We provide a new version of our ziggurat method for generating a random variable from a given decreasing density. It is faster and simpler than the original, and will produce, for example, normal or exponential variates at the rate of 15 million per second with a C version on a 400MHz PC. It uses two tables, integers ki, and reals wi. Some 99% of the time, the required x is produced by: Generate a random 32-bit integer j and let i be the index formed from the rightmost 8 bits of j. If j < k, return x = j x wi. We illustrate with C code that provides for inline generation of both normal and exponential variables, with a short procedure for settting up the necessary tables.
Language: English
Open Access status: diamond
OpenAlex ID: W2117106078
FWCI: 1.621
Cites: 7
Cited by: 588
Related to: 10