the LDL^T factorization
The Cholesky factorization is lovely but has two small drawbacks: it takes square roots (which cost a little and demand a strictly positive number under the root), and it only handles positive-definite matrices. The LDL^T factorization is the close relative that smooths both wrinkles. It writes a symmetric matrix as A = L D L^T, where L is unit-lower-triangular (1s on the diagonal) and D is a diagonal matrix that absorbs the scaling — so no square roots are needed.
You can think of it as Cholesky with the square roots factored out into the diagonal D: if Cholesky gives A = G G^T, then setting D to hold the squared diagonal of G and L to be G with its columns rescaled gives A = L D L^T. The factorization is computed with the same half-the-work O(n^3 / 3) effort as Cholesky, the solve is again a pair of triangular solves plus a trivial diagonal solve (L y = b, then D z = y by dividing, then L^T x = z), and dropping the square roots can be marginally faster and cleaner. Crucially, when D is allowed to have NEGATIVE or block 2-by-2 entries, LDL^T extends to symmetric matrices that are indefinite — not positive-definite — which plain Cholesky cannot touch.
LDL^T is the method of choice for symmetric systems that are not known to be positive-definite, which arise constantly in optimization (the KKT systems of constrained problems are symmetric but indefinite) and in many physics applications. For indefinite matrices it must be combined with symmetric pivoting (the Bunch-Kaufman strategy, using 1-by-1 and 2-by-2 pivot blocks) to stay stable while preserving symmetry. The honest caveat: on a positive-definite matrix LDL^T and Cholesky are essentially equivalent in cost and accuracy, so the real reason to reach for LDL^T is the indefinite case.
For A with rows (4, 2) and (2, 5), LDL^T gives L with rows (1, 0) and (0.5, 1) and D = diag(4, 4); check L D L^T = A, with no square roots taken.
The diagonal D carries the scaling that Cholesky would have put under square roots.
For indefinite symmetric matrices, naive LDL^T can break or be unstable; you need symmetric (Bunch-Kaufman) pivoting with 2-by-2 blocks. On positive-definite matrices it offers no real advantage over Cholesky.