https://issues.dlang.org/show_bug.cgi?id=10900
--- Comment #1 from [email protected] --- Commit pushed to master at https://github.com/dlang/phobos https://github.com/dlang/phobos/commit/45c515f267b687032b6672921d28b5c7938f6154 Add 64-bit implementation of MersenneTwisterEngine With the required tempering parameter `d` introduced by the previous patch, we can now introduce the standard 64-bit implementation of the Mersenne Twister. See https://en.wikipedia.org/wiki/Mersenne_Twister for an explanation of the chosen constants. Some minimal unittests have been added similar to those already present for the 32-bit `Mt19937`. These can be verified by comparison to C++11 by compiling and running the following C++ program: /****************************************************************/ int main () { static_assert(std::mt19937_64::default_seed == 5489, "Default seed does not match Phobos!"); std::mt19937_64 gen(std::mt19937_64::default_seed); std::cout << gen() << std::endl; for (int i = 0; i < 9998; ++i) { gen(); } std::cout << gen() << std::endl; } /****************************************************************/ Note that the `for` loop in this example advances the generator 9998 times compared to the D unittest's `popFrontN(9999)` because the first `gen()` call already advances the generator once. Fixes Issue #10900 <https://issues.dlang.org/show_bug.cgi?id=10900>. --
