def L(self):
from scipy.linalg import cho_factor<EOL>from numpy_sugar.linalg import ddot, sum2diag<EOL>if self._L_cache is not None:<EOL><INDENT>return self._L_cache<EOL><DEDENT>Q = self._cov["<STR_LIT>"][<NUM_LIT:0>][<NUM_LIT:0>]<EOL>S = self._cov["<STR_LIT>"][<NUM_LIT:1>]<EOL>B = dot(Q.T, ddot(self._site.tau, Q, left=True))<EOL>sum2diag(B, <NUM_LIT:1.0> / S, out=B)<EOL>self._L_cache = cho_factor(B, lower=True)[<NUM_LIT:0>]<EOL>return self._L_cache<EOL>
r"""Cholesky decomposition of :math:`\mathrm B`.

        .. math::

            \mathrm B = \mathrm Q^{\intercal}\tilde{\mathrm{T}}\mathrm Q
                + \mathrm{S}^{-1}