def gradient(self):
L = self.L<EOL>self._grad_Lu[:] = <NUM_LIT:0><EOL>for i in range(len(self._tril1[<NUM_LIT:0>])):<EOL><INDENT>row = self._tril1[<NUM_LIT:0>][i]<EOL>col = self._tril1[<NUM_LIT:1>][i]<EOL>self._grad_Lu[row, :, i] = L[:, col]<EOL>self._grad_Lu[:, row, i] += L[:, col]<EOL><DEDENT>m = len(self._tril1[<NUM_LIT:0>])<EOL>for i in range(len(self._diag[<NUM_LIT:0>])):<EOL><INDENT>row = self._diag[<NUM_LIT:0>][i]<EOL>col = self._diag[<NUM_LIT:1>][i]<EOL>self._grad_Lu[row, :, m + i] = L[row, col] * L[:, col]<EOL>self._grad_Lu[:, row, m + i] += L[row, col] * L[:, col]<EOL><DEDENT>return {"<STR_LIT>": self._grad_Lu}<EOL>
Derivative of the covariance matrix over the parameters of L.

Returns
-------
Lu : ndarray
    Derivative of K over the lower triangular part of L.