MATLAB includes LDL factorization, which however returns block diagonal matrix D instead of diagonal matrix D. These implementations return true diagonal matrix D.
The package includes two implementations of LDL.
One implementation takes a symmetrical matrix A and returns [L, D] that:
L*D*L' = ldl(A).
The second implementation is convenient whenever you would run LDL on Gramian matrix A:
where Z is a potentially long (but slim) rectangular matrix and Λ is a regularization diagonal matrix (can be just all zeros, if you don't need it). The second implementation saves you of explicitly storing the potentially large Z*Z' matrix.
Both implementations are textbook implementations and as such should serve only educative purposes.
Jan Motl (2020). LDL matrix factorization (https://www.mathworks.com/matlabcentral/fileexchange/75232-ldl-matrix-factorization), MATLAB Central File Exchange. Retrieved .