added eigen cholesky method