modified-cholesky contains MATLAB functions that
compute a modified Cholesky factorization of a symmetric and possibly
indefinite matrix. The algorithm is from
S. H. Cheng and N.J. Higham. "A modified Cholesky algorithm based on a symmetric indefinite factorization". SIAM J. Matrix Anal. Appl., 19(4):1097-1110, 1998.
and uses LDL^T factorization with a symmetric form of rook pivoting proposed by Ashcraft, Grimes, and Lewis. The functions here are based on code originally written by Bobby Cheng and Nick Higham in 1996.
The MATLAB functions are:
-
modchol_ldlt: the modified Cholesky function. It calls the built-in MATLAB function ldl to compute the LDL^T factorization. -
modchol_ldlt_m: this is the original version ofmodchol_ldltfrom 1996, where the_min the name denotes that the LDL^T factorization is computed using pure M-code. The output of this version should be the same as that frommodchol_ldltto within rounding error. The reasons for including this version are as follows.- Since the code for the factorization is explicitly included as M-code
the
_mversion is of pedagogical interest. It will also be useful for anyone who wants to modify the factorization to use a different pivoting strategy. - The
_mversion computes the growth factor for the factorization, which this is not available frommodchol_ldltitself.
Note that the
_mversion does not exploit symmetry and is not designed to be efficient. - Since the code for the factorization is explicitly included as M-code
the
-
test_modchol_ldlt: a simple test code.
The codes have been developed under MATLAB 2015b.
See license.txt for licensing information.