code: def tierms(data, rate=1.0, data_type="phase", taus=None):
      
      phase = input_to_phase(data, rate, data_type)
      (data, m, taus_used) = tau_generator(phase, rate, taus)
  
      count = len(phase)
  
      devs = np.zeros_like(taus_used)
      deverrs = np.zeros_like(taus_used)
      ns = np.zeros_like(taus_used)
  
      for idx, mj in enumerate(m):
          mj = int(mj)
  
          # This seems like an unusual way to
          phases = np.column_stack((phase[:-mj], phase[mj:]))
          p_max = np.max(phases, axis=1)
          p_min = np.min(phases, axis=1)
          phases = p_max - p_min
          tie = np.sqrt(np.mean(phases * phases))
  
          ncount = count - mj
  
          devs[idx] = tie
          deverrs[idx] = 0 / np.sqrt(ncount) # TODO! I THINK THIS IS WRONG!
          ns[idx] = ncount
  
      return remove_small_ns(taus_used, devs, deverrs, ns)
docs: Time Interval Error RMS.
  
      Parameters
      ----------
      data: np.array
          Input data. Provide either phase or frequency (fractional,
          adimensional).
      rate: float
          The sampling rate for data, in Hz. Defaults to 1.0
      data_type: {'phase', 'freq'}
          Data type, i.e. phase or frequency. Defaults to "phase".
      taus: np.array
          Array of tau values, in seconds, for which to compute statistic.
          Optionally set taus=["all"|"octave"|"decade"] for automatic
          tau-list generation.