parameters: (self, values)
return_statement: return [sp.csc_matrix(D.ravel(order='F')).T]
docstring: Gives the (sub/super)gradient of the atom w.r.t. each argument.
  
          Matrix expressions are vectorized, so the gradient is a matrix.
  
          Args:
              values: A list of numeric values for the arguments.
  
          Returns:
              A list of SciPy CSC sparse matrices or None.
docstring_summary: Gives the (sub/super)gradient of the atom w.r.t. each argument.
docstring_tokens: Gives the ( sub / super ) gradient of the atom w . r . t . each argument .
function: def _grad(self, values):
          """Gives the (sub/super)gradient of the atom w.r.t. each argument.
  
          Matrix expressions are vectorized, so the gradient is a matrix.
  
          Args:
              values: A list of numeric values for the arguments.
  
          Returns:
              A list of SciPy CSC sparse matrices or None.
          """
          # Grad UV^T
          U, _, V = np.linalg.svd(values[0])
          D = U.dot(V)
          return [sp.csc_matrix(D.ravel(order='F')).T]
function_tokens: def _grad ( self , values ) : # Grad UV^T U , _ , V = np . linalg . svd ( values [ 0 ] ) D = U . dot ( V ) return [ sp . csc_matrix ( D . ravel ( order = 'F' ) ) . T ]