docs: def get_compensation_matrix(ct21, ct31, ct12, ct32, ct13, ct23):
      """Compute crosstalk inversion matrix
  
      The spillover matrix is
  
      | | c11 c12 c13 |
      | | c21 c22 c23 |
      | | c31 c32 c33 |
  
      The diagonal elements are set to 1, i.e.
  
      ct11 = c22 = c33 = 1
  
      Parameters
      ----------
      cij: float
          Spill from channel i to channel j
  
      Returns
      -------
      inv: np.ndarray
          Compensation matrix (inverted spillover matrix)
      """
      ct11 = 1
      ct22 = 1
      ct33 = 1
  
      if ct21 < 0:
          raise ValueError("ct21 matrix element must not be negative!")
  
      if ct31 < 0:
          raise ValueError("ct31 matrix element must not be negative!")
  
      if ct12 < 0:
          raise ValueError("ct12 matrix element must not be negative!")
  
      if ct32 < 0:
          raise ValueError("ct32 matrix element must not be negative!")
  
      if ct13 < 0:
          raise ValueError("ct13 matrix element must not be negative!")
  
      if ct23 < 0:
          raise ValueError("ct23 matrix element must not be negative!")
  
      crosstalk = np.array([[ct11, ct12, ct13],
                            [ct21, ct22, ct23],
                            [ct31, ct32, ct33],
                            ])
      return np.linalg.inv(crosstalk)