docs: def rippe_parameters(matrix, positions, lengths=None, init=None, circ=False):
      """Estimate parameters from the model described in Rippe et al., 2001.
      """
  
      n, _ = matrix.shape
  
      if lengths is None:
          lengths = np.abs(np.diff(positions))
  
      measurements, bins = [], []
      for i in range(n):
          for j in range(1, i):
              mean_length = (lengths[i] + lengths[j]) / 2.
              if positions[i] < positions[j]:
                  d = (((positions[j] - positions[i] -
                       lengths[i]) + mean_length) /
                       1000.)
              else:
                  d = (((positions[i] - positions[j] -
                       lengths[j]) + mean_length) /
                       1000.)
  
              bins.append(np.abs(d))
              measurements.append(matrix[i, j])
      parameters = estimate_param_rippe(measurements, bins, init=init, circ=circ)
      print(parameters)
      return parameters[0]