
Tiago de Paula Peixoto wrote:
Hi.
The Mersenne Twister RNG was updated by the original author in 2002, because of a small problem in the seeding procedure, which was that the most significant bit of the seed was not well reflected to the state vector. Read http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/emt19937ar.html for more details.
The version implemented in Boost is the original 1998 one, which contains the problem. The attached patch implements the new seeding procedure, which uses something different than the linear congruential RNG to initialize the state vector. I haven't identified the new procedure to match any generator already implemented in Boost, so I just wrote it there (please correct me if I'm wrong).
I have compared the output to the official implementation output, and it's identical.
This will cause the sequences to differ in the case of default initialization, correct? This will cause test vectors generated by the old implementation to mismatch with new implementation. If so, please note this in the documentation.