Constructs a XorshiftEngine generator seeded with x0.
A postblit is present on this object, but not explicitly documented in the source.
Advances the random sequence.
Marker for mir.random.isRandomEngine
Largest generated value.
Word size of this xorshift generator and the return type of opCall.
The number of bits of state of this generator. This must be a positive multiple of the size in bits of UIntType. If bits is large this struct may occupy slightly more memory than this so it can use a circular counter instead of shifting the entire array.
The direction and magnitude of the 1st shift. Positive means left, negative means right.
The direction and magnitude of the 2nd shift. Positive means left, negative means right.
The direction and magnitude of the 3rd shift. Positive means left, negative means right.
Note: For historical compatibility when bits == 192 and UIntType is uint a legacy hybrid PRNG is used consisting of a 160-bit xorshift combined with a 32-bit counter. This combined generator has period equal to the least common multiple of 2 ^^ 160 - 1 and 2 ^^ 32.
Xorshift generator. Implemented according to Xorshift RNGs (Marsaglia, 2003) with Sebastino Vigna's optimization for large arrays.
Period is 2 ^^ bits - 1 except for a legacy 192-bit uint version (see note below).