This is the mail archive of the
gsl-discuss@sourceware.org
mailing list for the GSL project.
Re: "Mersenne Twister with improved initialization" (2002): another bug in mt19937ar.f90
- From: "Paul C. Leopardi" <leopardi at physics dot usyd dot edu dot au>
- To: m-mat at math dot sci dot hiroshima-u dot ac dot jp, jrfsousa at esoterica dot pt, gsl-discuss at sourceware dot org
- Date: Fri, 1 Dec 2006 15:10:13 +1100
- Subject: Re: "Mersenne Twister with improved initialization" (2002): another bug in mt19937ar.f90
- References: <200611291331.56193.leopardi@physics.usyd.edu.au>
- Reply-to: paul dot leopardi at usyd dot edu dot au
To Makoto Matsumoto, Josi Rui Faustino de Sousa, gsl-discuss mailing list.
Hi all,
Further to my recent message, I have discovered another bug in mt19937ar.f90
(2002).
In mt19937ar.f90 (2002), in subroutine init_genrand, the value of mti should
be reinitialized to n + 1_wi, but this is not done. The fix is to add the
line
mti = n + 1_wi
immdiately before
end subroutine init_genrand.
The other implementations, mt19937ar.c (2002), GSL 1.8 and mt95.f90 (2003) do
not have the bug seen here in mt19937ar.f90 (2002).
In mt19937ar.c (2002), in function init_genrand, mti is set to N when the for
loop completes.
In GSL 1.8, in function mt_set of in mt.c, the statement
state->mti = i;
correctly reinitializes state->mti.
In mt95.f90 (2003), in subroutine init_by_scalar, the statement
state%cnt = n + 1_wi
correctly reinitializes state%cnt.
Best, Paul
On Wednesday 29 November 2006 13:31, Paul C. Leopardi wrote:
> To Makoto Matsumoto, Josi Rui Faustino de Sousa, gsl-discuss mailing list.
>
> Hi all,
> The purpose of this email message is to document the different default
> seeds used by some of the different implementations of "Mersenne Twister
> with improved initialization" (2002).
>
> In summary, the value used by the original authors is 5489UL. GSL 1.8 uses
> the obsolete value 4357. Josi Rui Faustino de Sousa's mt19937ar.f90 uses
> the incorrect value 21641. This is fixed in mt95.f90. See details below.
>
> Some suggestions for various authors:
> 1. Document the reason for changing the default seed of mt19937ar.c from
> 4357 to 5489UL.
> 2. Update mt.c GSL to use the value 5489UL rather than 4357.
> 3. Document the default seed bug in mt19937ar.f90 (2002).
> 4. Update the web page "Mersenne Twister in FORTRAN"
>
http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/VERSIONS/FORTRAN/fortran.html
> to note the bug in mt19937ar.f90 (2002) and to list mt95.f90 (2003).
...