docstr: Parameters
  ----------
  mat : square matrix
      The matrix to be penalized.
  mat_inv : square matrix
      The inverse of `mat`.
  
  Returns
  -------
  A vector containing the gradient of the penalty
  with respect to each element in the lower triangle
  of `mat`.
docstr_tok: ["Parameters","--","--","--","--","--","mat",":","square","matrix","The","matrix","to","be","penalized",".","mat_inv",":","square","matrix","The","inverse","of","`","mat","`",".","Returns","--","--","--","-","A","vector","containing","the","gradient","of","the","penalty","with","respect","to","each","element","in","the","lower","triangle","of","`","mat","`","."]
code: def deriv(self, mat, mat_inv):
      """
      Parameters
      ----------
      mat : square matrix
          The matrix to be penalized.
      mat_inv : square matrix
          The inverse of `mat`.
  
      Returns
      -------
      A vector containing the gradient of the penalty
      with respect to each element in the lower triangle
      of `mat`.
      """
      raise NotImplementedError
  
imports: import numpy
label_desc: Use image node_id 3 for calling the CovariancePenalty obj's underlying member method code with example usage: obj.deriv(mat, mat_inv) without return types