From: Walter on
Matlab uses the *block* LDL decomposition rather than the "vanilla" LDL decomposition. In the vanilla LDL decomposition, the matrices L and D are lower triangular and diagonal, respectively. In the block LDL decomposition, L and D are "psychologically" lower triangular and "block" diagonal respectively.

Unfortunately, a "psychologically" lower triangular matrix and "block" diagonal matrix don't have the properties I need for my calculation. Specifically, if we decomposed X into L and D with the vanilla LDL, then X(1:end-1,1:end-1) is decomposed into L(1:end-1,1:end-1) and D(1:end-1,1:end-1). This isn't necessarily true with block LDL decomposition.

Does anyone know if there is an *optomized* routine (mex, etc) in Matlab for a vanilla LDL decomposition? Or, at the very least, a computationally cheap way to recover that very lovely aforementioned property from the block decomposition?

thanks,
Walter