'Returns the Cholesky decomposition L of a matrix A
such that L * L.T = A
A must be a square, symmetric, positive-definite
and non-singular matrix
Examples
>>> from sympy.matrices import SparseMatrix
>>> A = SparseMatrix(((25,15,-5),(15,18,0),(-5,0,11)))
>>> A.cholesky()
Matrix([
[ 5, 0, 0],
[ 3, 3, 0],
[-1, 1, 3]])
>>> A.cholesky() * A.cholesky().T == A
True'

def cholesky(self):

    from sympy.core.numbers import nan, oo
    if (not self.is_symmetric()):
        raise ValueError('Cholesky    decomposition    applies    only    to    symmetric    matrices.')
    M = self.as_mutable()._cholesky_sparse()
    if (M.has(nan) or M.has(oo)):
        raise ValueError('Cholesky    decomposition    applies    only    to    positive-definite    matrices')
    return self._new(M)
