code: def _max_len_seq_inner(taps, state, nbits, length, seq):
      # Here we compute MLS using a shift register, indexed using a ring buffer
      # technique (faster than using something like np.roll to shift)
      n_taps = taps.shape[0]
      idx = 0
      for i in range(length):
          feedback = state[idx]
          seq[i] = feedback
          for ti in range(n_taps):
              feedback ^= state[(taps[ti] + idx) % nbits]
          state[idx] = feedback
          idx = (idx + 1) % nbits
      # state must be rolled s.t. next run, when idx==0, it's in the right place
      return np.roll(state, -idx, axis=0)
  
label_desc: Use image node_id 1 for calling a global function with example usage: _max_len_seq_inner(taps, state, nbits, length, seq) and returns: np