Gaussian random number generators on a CYBER-205
暂无分享,去创建一个
Normally distributed pseudorandom numbers are needed for many applications. Simple procedures for producing such a distribution can be found in many standard mathematical libraries. When many numbers are needed, however, the relatively slow speed of these methods can be a serious drawback. This is especially true on a vector computer, where the standard libraries contain scalar routines. The vectorization of several Gaussian random number generators on a CDC CYBER‐205 is discussed. Four methods for producing a normal distribution are reviewed in detail. The first two considered are simple algorithms often referred to by the same name, the polar method. The latter two are more complex procedures which speed up the generating process by dividing the normal distribution into various parts. These are the rectangle–wedge–tail and ziggurat methods. Implementation on a CYBER‐205 of the rectangle–wedge–tail, ziggurat, and one of the polar methods is discussed in detail. In evaluating their performance, it is found that the rectangle–wedge–tail and ziggurat methods offer significant improvements in execution speed over the polar method. Of these two, the ziggurat method is appreciably faster and requires fewer auxiliary constants. If only a few random numbers are needed, however, the polar method is probably the best choice. It may be coded in a few lines, and the sacrifice in speed is found to be only about a factor of 3.