code: function next_state(mt) {
      var p = 0, _p = mt.state;
      var j;
  
      mt.left = N;
      mt.next = 0;
  
      for (j=N-M+1; --j; p++)
        _p[p] = _p[p+(M)] ^ TWIST(_p[p+(0)], _p[p+(1)]);
  
      for (j=M; --j; p++)
        _p[p] = _p[p+(M-N)] ^ TWIST(_p[p+(0)], _p[p+(1)]);
  
      _p[p] = _p[p+(M-N)] ^ TWIST(_p[p+(0)], _p[0]);
    }
docs: /* generate N words at one time