[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Help-gsl] Random Number Generator

From: John Lamb
Subject: Re: [Help-gsl] Random Number Generator
Date: Thu, 16 Sep 2004 22:00:28 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040114

Dr Jekyll wrote:
Can someone explain to me the following three "gsl_rng_type" pointers, where
does they come from? I only know some generators such as LeCuyer... but
never heards generators whose name contains "19937" or something like that!

See below for details: the 1998 and 1999 versions are older implementations that are not as good but preserved, presumably for the sake of consistency.

Mersenne twister: a 623-dimensionally equidistributed uniform pseudo-random number generator
ACM Transactions on Modeling and Computer Simulation
Volume 8 ,  Issue 1  (January 1998)
Pages: 3 - 30

Makoto Matsumoto Keio Univ., Yakohama; and the Max-Planch-Institut Für Mathematik, Japan
Takuji Nishimura         Keio Univ., Yokohama, Japan

A new algorithm called Mersenne Twister (MT) is proposed for generating uniform pseudorandom numbers. For a particular choice of parameters, the algorithm provides a super astronomical period of 219937 -1 and 623-dimensional equidistribution up to 32-bit accuracy, while using a working area of only 624 words. This is a new variant of the previously proposed generators, TGFSR, modified so as to admit a Mersenne-prime period. The characteristic polynomial has many terms. The distribution up to v bits accuracy for 1 ? v ? 32 is also shown to be good. An algorithm is also given that checks the primitivity of the characteristic polynomial of MT with computational complexity O(p2) where p is the degree of the polynomial.We implemented this generator in portable C-code. It passed several stringent statistical tests, including diehard. Its speed is comparable to other modern generators. Its merits are due to the efficient algorithms that are unique to polynomial calculations over the two-element field.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]