init method

void init(
  1. Int64 seed
)

Initializes the MersenneTwisterEngine from a seed.

Implementation

void init(Int64 seed) {
  _state[0] = seed & _wordMask;
  for (_stateIndex = 1; _stateIndex < n; _stateIndex += 1) {
    // See Knuth TAOCP Vol2. 3rd Ed. P.106 for multiplier.
    _state[_stateIndex] = f *
            (_state[_stateIndex - 1] ^
                (_state[_stateIndex - 1] >>> (w - 2))) +
        Int64(_stateIndex);
    _state[_stateIndex] &= _wordMask;
  }
}