def gradient(self):
L = self.L<EOL>n = self.L.shape[<NUM_LIT:0>]<EOL>grad = {"<STR_LIT>": zeros((n, n, n * self._L.shape[<NUM_LIT:1>]))}<EOL>for ii in range(self._L.shape[<NUM_LIT:0>] * self._L.shape[<NUM_LIT:1>]):<EOL><INDENT>row = ii // self._L.shape[<NUM_LIT:1>]<EOL>col = ii % self._L.shape[<NUM_LIT:1>]<EOL>grad["<STR_LIT>"][row, :, ii] = L[:, col]<EOL>grad["<STR_LIT>"][:, row, ii] += L[:, col]<EOL><DEDENT>return grad<EOL>
Derivative of the covariance matrix over the lower triangular, flat part of L.

It is equal to

    ∂K/∂Lᵢⱼ = ALᵀ + LAᵀ,

where Aᵢⱼ is an n×m matrix of zeros except at [Aᵢⱼ]ᵢⱼ=1.

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