Short version: common implementations of MT (and MT64) have an additional drop parameter d. The documents that I considered when describing the MT are not taken into account. Where is it from? When was it added?
Long version! :)
I am considering using the MT family with different parameters (for reasons). Nishimura published this document describing the implementation of 64-bit MT and a number of alternatives for matrix A and (u, s, t, l, b, c) tempering parameters. Like the original 32-bit MT paper , this describes the tempering procedure as :
y := x xor (x >> u) y := x xor ((y << s) and b) y := x xor ((y << t) and c) z := x xor (y >> l)
However, real implementations (<a href = "> a b ) and the parameters described on the MT Wikipedia page have an additional mask mask parameter (called" d ") applied to the first stage of the vacation procedure:
x ^= (x >> 29) & 0x5555555555555555ULL; x ^= (x << 17) & 0x71D67FFFEDA60000ULL; x ^= (x << 37) & 0xFFF7EEE000000000ULL; x ^= (x >> 43);
I donβt want to just βblindlyβ use vacation parameters that exclude the βdβ parameter, not understanding what it is for ... but I canβt find links to why this βdβ parameter was added. (Presumably this is an improvement ...)
Any ideas on what this is for, any links to why it was added?
random mersenne-twister
Wuggy
source share