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_ldlt
from 1996, where the_m
in 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_ldlt
to 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
_m
version is of pedagogical interest. It will also be useful for anyone who wants to modify the factorization to use a different pivoting strategy. - The
_m
version computes the growth factor for the factorization, which this is not available frommodchol_ldlt
itself.
Note that the
_m
version 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.