docs: def error_perturbation(C, S):
      r"""Error perturbation for given sensitivity matrix.
  
      Parameters
      ----------
      C : (M, M) ndarray
          Count matrix
      S : (M, M) ndarray or (K, M, M) ndarray
          Sensitivity matrix (for scalar observable) or sensitivity
          tensor for vector observable
  
      Returns
      -------
      X : float or (K, K) ndarray
          error-perturbation (for scalar observables) or covariance matrix
          (for vector-valued observable)
  
      """
      if len(S.shape) == 2:  # Scalar observable
          return error_perturbation_single(C, S)
      elif len(S.shape) == 3:  # Vector observable
          return error_perturbation_cov(C, S)
      else:
          raise ValueError("Sensitivity matrix S has to be a 2d or 3d array")