public function seed($seed)
{
$this->seed = $seed;
$this->index = $this->n;
$this->mt[0] = $seed & $this->wMask;
for ($i = 1; $i <= $this->n - 1; $i++) {
$this->mt[$i] = $this->f * ($this->mt[$i - 1] ^ $this->mt[$i - 1] >> $this->w - 2 & 0b11) + $i & $this->wMask;
assert('$this->mt[$i] <= $this->wMask');
}
assert('count($this->mt) === 624');
return $this;
}