docs: def rdl_decomposition(T, k=None, norm='auto', ncv=None, reversible=False, mu=None):
      r"""Compute the decomposition into left and right eigenvectors.
  
      Parameters
      ----------
      T : sparse matrix
          Transition matrix
      k : int (optional)
          Number of eigenvector/eigenvalue pairs
      norm: {'standard', 'reversible', 'auto'}
          standard: (L'R) = Id, L[:,0] is a probability distribution,
              the stationary distribution mu of T. Right eigenvectors
              R have a 2-norm of 1.
          reversible: R and L are related via L=L[:,0]*R.
          auto: will be reversible if T is reversible, otherwise standard.
      ncv : int (optional)
          The number of Lanczos vectors generated, `ncv` must be greater than k;
          it is recommended that ncv > 2*k
      reversible : bool, optional
          Indicate that transition matrix is reversible
      mu : (M,) ndarray, optional
          Stationary distribution of T
  
      Returns
      -------
      R : (M, M) ndarray
          The normalized ("unit length") right eigenvectors, such that the
          column ``R[:,i]`` is the right eigenvector corresponding to the eigenvalue
          ``w[i]``, ``dot(T,R[:,i])``=``w[i]*R[:,i]``
      D : (M, M) ndarray
          A diagonal matrix containing the eigenvalues, each repeated
          according to its multiplicity
      L : (M, M) ndarray
          The normalized (with respect to `R`) left eigenvectors, such that the
          row ``L[i, :]`` is the left eigenvector corresponding to the eigenvalue
          ``w[i]``, ``dot(L[i, :], T)``=``w[i]*L[i, :]``
  
      """
      if k is None:
          raise ValueError("Number of eigenvectors required for decomposition of sparse matrix")
      # auto-set norm
      if norm == 'auto':
          if is_reversible(T):
              norm = 'reversible'
          else:
              norm = 'standard'
      if reversible:
          return rdl_decomposition_rev(T, k, norm=norm, ncv=ncv, mu=mu)
      else:
          return rdl_decomposition_nrev(T, k, norm=norm, ncv=ncv)