Symmetric-indefinite factorisation: the Bunch-Kaufman LDLᵀ algorithm
Anchor (Master): Higham 2002 *Accuracy and Stability of Numerical Algorithms* 2e (SIAM) Ch. 11 (the componentwise backward-error analysis of symmetric-indefinite factorization, the growth-factor bounds for Bunch-Parlett complete pivoting and Bunch-Kaufman partial pivoting, the bounded-L caveat and rook pivoting); Golub-Van Loan 2013 *Matrix Computations* 4e (Johns Hopkins) §4.4; Bunch-Kaufman 1977 *Mathematics of Computation* 31 (the partial-pivoting strategy and the inertia computation)
Intuition Beginner
Some matrices are symmetric — equal to their own mirror image across the diagonal — yet are not positive in the special sense that makes the Cholesky method of 43.03.02 work. Such a matrix is called indefinite: sandwich some vectors around it and you get a positive number, sandwich others and you get a negative one. These show up constantly, most famously when a problem mixes a minimisation with a constraint, as in the saddle-point systems of optimisation and physics.
For an indefinite matrix you are stuck between two bad options. Cholesky simply breaks: at some step it asks you to take the square root of a negative number. The fully general elimination of 43.03.01 does work, but it throws away the symmetry. It computes two separate triangular factors and stores the whole square of numbers, doing twice the arithmetic and using twice the memory that the symmetry should have let you save.
The fix is a factorisation that keeps the symmetry while tolerating the negative directions. Instead of one triangle times itself, you write the matrix as a triangle times a block-diagonal middle piece times the triangle flipped. The middle piece is mostly made of single numbers, but every so often it carries a small two-by-two block. That little block is the trick: when a single safe pivot is not available, you grab a pair of rows and columns together and pivot on the two-by-two they form.
Why allow the two-by-two blocks at all? Because an indefinite symmetric matrix can have a zero or dangerously tiny number sitting on its diagonal even though the matrix is perfectly invertible. A single pivot there would blow up. Pairing it with a neighbour gives a small block whose own little determinant is safely away from zero, so you can divide by it. A clever rule decides, at each step and after looking at just one column, whether a single pivot is safe or a pair is needed.
Visual Beginner
The picture is a symmetric square splitting into three pieces: a lower triangle with ones on its diagonal, a middle strip that is mostly single numbers but with an occasional two-by-two block, and the same triangle flipped to face the other way.
Read the table top to bottom. At each stage you look at the current corner of the matrix and decide: is the single diagonal number a safe thing to divide by? If yes, you use a one-by-one pivot and move on. If not, you pull in the next row and column and use the two-by-two block they form, then move past both at once.
| stage | what you check | what you do |
|---|---|---|
| start | the symmetric square | nothing yet |
| safe diagonal | the corner number is large enough | use a single pivot, store one column of |
| risky diagonal | the corner number is tiny or zero | use a two-by-two block, store two columns of |
| finish | the whole matrix is used up | read off and the block-diagonal |
The takeaway: where Cholesky needed one clean triangle and would fail on a negative direction, the indefinite case keeps the symmetry by allowing a middle block-diagonal piece, and the occasional two-by-two block is what lets it step safely past a bad diagonal entry.
Worked example Beginner
Let us factor a small symmetric indefinite matrix and watch a two-by-two block appear because the top-left entry is unusable.
Take $$ A = \begin{pmatrix} 0 & 1 & 2 \ 1 & 0 & 3 \ 2 & 3 & 1 \end{pmatrix}. $$ This matrix is symmetric. Its top-left entry is , so Cholesky cannot even start — there is nothing safe to divide by in the corner. We will instead use a two-by-two block built from the first two rows and columns.
Step 1. Pick the pivot block. The top-left corner is $$ E = \begin{pmatrix} 0 & 1 \ 1 & 0 \end{pmatrix}. $$ Its little determinant is , which is not zero, so this block is safe to use as a pivot even though each single diagonal entry is .
Step 2. Read off the part of the matrix below the block. The third row, in its first two columns, is . Call this row-piece .
Step 3. Form the multiplier block. We need times the inverse of . The inverse of is $$ E^{-1} = \frac{1}{-1}\begin{pmatrix} 0 & -1 \ -1 & 0 \end{pmatrix} = \begin{pmatrix} 0 & 1 \ 1 & 0 \end{pmatrix}. $$ So the multiplier is . These two numbers go into the bottom row of .
Step 4. Update the bottom-right corner. The leftover single entry is the original value minus the multiplier times flipped: . This is the last pivot.
Reading everything off, $$ L = \begin{pmatrix} 1 & 0 & 0 \ 0 & 1 & 0 \ 3 & 2 & 1 \end{pmatrix}, \qquad D = \begin{pmatrix} 0 & 1 & 0 \ 1 & 0 & 0 \ 0 & 0 & -11 \end{pmatrix}. $$
What this tells us: the zero in the corner did not stop us. Pairing the first two rows and columns into a two-by-two block, whose determinant was safely nonzero, let us pivot past the bad diagonal. The factorisation kept the symmetry — the same appears on both sides — and the signs in (one block, one negative single entry) already hint at the matrix being indefinite.
Check your understanding Beginner
Formal definition Intermediate+
Let be symmetric, , and possibly indefinite: the quadratic form takes both signs. A symmetric indefinite factorization (block factorization) is a factorization
$$
P A P^{\top} = L D L^{\top},
$$
where is a permutation matrix, is unit lower triangular, and is block diagonal with each diagonal block of size or . The blocks are scalar pivots; the blocks are symmetric, nonsingular, and indefinite (their two eigenvalues have opposite signs). This is the symmetry-preserving analogue of the factorization of 43.03.01: the congruence keeps both sides symmetric, and the cost is operations and storage for one triangle, half the of unsymmetric . When is positive-definite, every pivot can be taken and positive and the factorization specialises to the root-free form of Cholesky 43.03.02.
The block step. Suppose a symmetric pivot block of size has been permuted to the top-left corner, partitioning the (permuted) matrix as $$ \tilde{A} = \begin{pmatrix} E & C^{\top} \ C & B \end{pmatrix}, \qquad E = E^{\top}\ \text{nonsingular},\ s\times s. $$ One block-elimination step factors $$ \tilde{A} = \begin{pmatrix} I_s & 0 \ C E^{-1} & I \end{pmatrix} \begin{pmatrix} E & 0 \ 0 & B - C E^{-1} C^{\top} \end{pmatrix} \begin{pmatrix} I_s & E^{-1} C^{\top} \ 0 & I \end{pmatrix}, $$ storing as a block of and as the corresponding block-column of , and recursing on the Schur complement , which is again symmetric. Because is or , forming and the rank- update costs per step, totalling the count.
The Bunch-Kaufman pivoting strategy. The pivot block at each step is chosen by a search that examines only one column beyond the diagonal, keeping the total pivot-selection cost at . Write for the diagonal entries of the active submatrix and let $$ \alpha = \frac{1 + \sqrt{17}}{8} \approx 0.6404. $$ Let be the largest off-diagonal magnitude in the first column, attained at row . The strategy is:
- If , use as a pivot.
- Otherwise, let be the largest off-diagonal magnitude in column .
- If , use as a pivot.
- Else if , use as a pivot (after a symmetric permutation bringing it to the corner).
- Else use the symmetric block on indices as a pivot.
The threshold is the value that minimises the worst-case growth bound over the two ways a single elimination can enlarge entries — a step followed by a step versus a single step (the calculation is in the Key theorem). The earlier Bunch-Parlett strategy searches the whole active submatrix for its largest entry ( total) and gives a smaller, more uniform growth bound; Bunch-Kaufman trades a slightly weaker bound for the cheaper one-column search.
Inertia. By Sylvester's law of inertia, the congruence preserves the inertia — the triple of positive, negative, and zero eigenvalues. Since is nonsingular, and have the same inertia, and the inertia of is read off blockwise: each positive pivot contributes a , each negative one a , and each block (always indefinite here) contributes one and one . The factorization thus computes the inertia of in operations without finding a single eigenvalue.
Counterexamples to common slips
Cholesky failure is not invertibility failure. The matrix is symmetric, nonsingular (determinant ), and indefinite; Cholesky fails at the first square root, but the block factorization handles it with a single pivot. Cholesky's breakdown signals indefiniteness, not singularity.
Symmetric pivoting must touch rows and columns together. Using ordinary partial pivoting (swap rows only, as in
43.03.01) destroys symmetry: becomes , which is no longer symmetric. The permutation must be applied symmetrically, , so the diagonal stays the diagonal and the factorization can reuse one triangle.A pivot of small magnitude is not automatically forbidden. Bunch-Kaufman keeps a small as a pivot when the off-column quantity is also small (case 2a), because then dividing by it does not amplify anything. Definiteness of the pivot is not required; controlled element growth is.
The blocks are indefinite, not positive. Each pivot is chosen precisely when no nearby single entry is safe, and such a block has a negative determinant, hence eigenvalues of opposite sign. Reading the inertia off the blocks relies on this: every block contributes exactly one positive and one negative eigenvalue.
Key theorem with proof Intermediate+
The signature result is that the diagonal pivoting method with the Bunch-Kaufman strategy runs to completion for every nonsingular symmetric matrix and bounds the element growth by a quantity independent of per step, so the factorization is backward stable in the same sense as GEPP of 43.03.01, at half the cost of unsymmetric .
Theorem (Bunch-Kaufman: completion and bounded growth). Let be symmetric and nonsingular. Then the diagonal pivoting method with the Bunch-Kaufman strategy and threshold produces a factorization with block diagonal of nonsingular and blocks, the recursion never breaking down. The element growth of a single step is bounded: writing for the largest magnitude in the active submatrix after pivot steps, $$ \mu_{k+1} \le (1 + \alpha^{-1}),\mu_k \quad (1\times 1\ \text{step}), \qquad \mu_{k+2} \le (1 + \alpha^{-1}),\mu_k \quad (2\times 2\ \text{step}), $$ so the growth per eliminated row is bounded by uniformly, and consequently the computed factors are the exact factors of a perturbed matrix, with for a low-degree polynomial and a growth factor that the strategy controls [Higham, N. J. — Accuracy and Stability of Numerical Algorithms (2nd ed.)].
Proof. Consider one step on the active symmetric submatrix with largest magnitude , and normalise so all entries have magnitude ; let be the largest subdiagonal magnitude in column .
Case 1: . A pivot is used. Each Schur-complement entry is , bounded in magnitude by $$ |a^{(k)}{ij}| + \frac{|a{i1}|,|a_{1j}|}{|a_{11}|} \le 1 + \frac{\lambda^2}{\alpha\lambda} = 1 + \frac{\lambda}{\alpha} \le 1 + \alpha^{-1}, $$ using and . So .
Case 2a: , with . Again a pivot is used. Now the relevant entries in the update are bounded using , so each updated entry is at most , giving .
Case 2b: . The diagonal entry is permuted to the corner and used as a pivot; by the same bound as Case 1 with in the pivot role, .
Case 2c: the block. The block is the pivot. Its determinant satisfies , and the failure of Cases 1, 2a, 2b forces , , and ; combining, , so and is nonsingular. The entries of are bounded by , and the Schur-complement update has entries bounded — after the algebra that the threshold is chosen to optimise — by over the two rows eliminated, giving . The threshold is exactly the root of -balancing equation that equalises the worst growth of two consecutive steps against one step, minimising the per-row bound.
Since every case keeps a nonsingular pivot and bounds the active-submatrix growth by a factor per eliminated row, the recursion completes for nonsingular and the accumulated growth factor is controlled. Charging the rounding of each block elimination backward by the standard floating-point model of 43.01.01, exactly as in the GEPP analysis of 43.03.01, the computed factors satisfy with .
Bridge. This theorem is the foundational reason the symmetric indefinite solve costs half of unsymmetric without sacrificing backward stability: the growth factor that made 43.03.01 only conditionally stable is here controlled by a constant per-row bound , and this is exactly the structure of the GEPP backward-error theorem with the pivoting rule redesigned to respect symmetry. The choice generalises the partial-pivoting threshold of 43.03.01 to a two-sided search that must weigh a against a pivot, and the central insight is that an indefinite block can have a safely nonzero determinant even when both its diagonal entries are tiny, so pairing rows rescues a step that no single pivot could take. The result builds toward the saddle-point and KKT solvers of constrained optimisation, where the coefficient matrix is symmetric indefinite by construction, and it appears again in the inertia computation that certifies a stationary point as a minimum, a maximum, or a saddle. Putting these together, where Cholesky 43.03.02 exploited definiteness to remove pivoting entirely, the indefinite case keeps just enough pivoting to stay safe while preserving the symmetry, and the bridge is that the same block-Schur-complement recursion underlies both, specialising to scalar pivots exactly when the matrix is positive-definite.
Exercises Intermediate+
Advanced results Master
Theorem 1 (Bunch-Parlett complete pivoting and its growth bound). The Bunch-Parlett strategy chooses, at each step, between a and a pivot by comparing the largest diagonal magnitude against the largest off-diagonal magnitude in the entire active submatrix, with the same threshold : a pivot on the maximal diagonal entry if , else a pivot on the indices realising . Its growth factor obeys the bound analogous to complete pivoting for , in fact , slowly growing and never catastrophic, with the entries of also bounded by a constant. The price is the cost of searching the whole submatrix at every step, against the of the one-column Bunch-Kaufman search; Bunch-Parlett is the symmetric analogue of complete pivoting, Bunch-Kaufman of partial pivoting [Golub, G. H. & Van Loan, C. F. — Matrix Computations (4th ed.)].
Theorem 2 (the bounded- defect of Bunch-Kaufman and rook pivoting). Bunch-Kaufman partial pivoting bounds the element growth of and the Schur complements, but it does not bound the entries of : the multiplier block can be arbitrarily large when a pivot has small determinant relative to its entries, so can grow without a dimension-free bound. The computed solution of remains backward stable for the linear system — the instability in cancels against in forming — but a large harms the accuracy of derived quantities and of the factorization viewed as data. Rook pivoting (bounded Bunch-Kaufman) repairs this by continuing the column search, alternating between rows and columns until a locally maximal entry is found, at amortised cost in practice and worst-case ; it bounds both the growth and the entries of by constants, combining the cheapness of Bunch-Kaufman with the bounded- guarantee of Bunch-Parlett [Higham, N. J. — Accuracy and Stability of Numerical Algorithms (2nd ed.)].
Theorem 3 (inertia by Sylvester's law and the symmetric-definite reduction). For symmetric nonsingular with , the inertia of equals the blockwise inertia of : is the number of positive pivots plus the number of blocks, the number of negative pivots plus the number of blocks, and for nonsingular . This gives the inertia in operations without eigenvalues — the standard tool for counting eigenvalues of a symmetric matrix in an interval by computing the inertias of and (Sturm-sequence / spectrum-slicing), and for certifying second-order optimality of a constrained stationary point by checking the inertia of the KKT matrix against the count expected for a local minimum [Bunch, J. R. & Kaufman, L. — Some Stable Methods for Calculating Inertia and Solving Symmetric Linear Systems]. When happens to be positive-definite, every diagonal pivot is accepted and positive, no block ever arises, and the factorization is exactly the root-free Cholesky of 43.03.02.
Theorem 4 (saddle-point systems and the KKT structure). The block matrix $$ K = \begin{pmatrix} H & B^{\top} \ B & 0 \end{pmatrix}, \qquad H = H^{\top} \in \mathbb{R}^{m\times m},\ B \in \mathbb{R}^{p\times m}, $$ arising as the Karush-Kuhn-Tucker (KKT) system of an equality-constrained quadratic program subject to , is symmetric and — because of the zero block — indefinite whenever , even when is positive-definite on the null space of . If is positive-definite and has full row rank, is nonsingular with inertia exactly : positive and negative eigenvalues. Cholesky cannot factor ; the Bunch-Kaufman factorization is the standard symmetric direct solver for it, and the computed inertia both confirms the well-posedness of the saddle point and serves as the second-order optimality certificate. This is the canonical application that makes symmetric indefinite factorization a workhorse of optimisation and of mixed finite-element and equilibrium problems [Golub, G. H. & Van Loan, C. F. — Matrix Computations (4th ed.)].
Synthesis. The symmetric indefinite factorization is the foundational reason a non-positive-definite symmetric system still solves at half the cost of unsymmetric with backward stability intact: the block-Schur-complement recursion that produced Cholesky 43.03.02 is kept whole, only the pivot rule generalised to choose between a and a block so an indefinite diagonal never forces division by a tiny number. This is exactly the GEPP growth-factor analysis of 43.03.01, with the threshold tuned to balance the worst growth of two steps against one step, and the central insight is that an indefinite pivot can have a determinant bounded away from zero even when both diagonal entries vanish, so pairing rows rescues what no scalar pivot could. The factorization is dual to the spectral picture: Sylvester's law of inertia makes the pivot signs a count of positive and negative eigenvalues, turning the solve into the standard inertia-and-spectrum-slicing tool, with every block forced indefinite. The partial-pivoting search generalises the cheap one-column partial pivoting of 43.03.01 to the symmetric two-sided setting, while Bunch-Parlett and rook pivoting trade cost for the bounded- guarantee Bunch-Kaufman lacks. Putting these together, the saddle-point and KKT systems of constrained optimisation are solved and certified by exactly this factorization, and the bridge is that positive-definiteness is the special case where no block appears and the method collapses back to Cholesky.
Full proof set Master
Proposition 1 (symmetric block elimination). Let be symmetric with nonsingular of size . Then with unit lower triangular and , symmetric.
Proof. Compute . First , where and because using . Then $$ \mathcal{L}(\mathcal{D}\mathcal{L}^{\top}) = \begin{pmatrix} I & 0 \ CE^{-1} & I \end{pmatrix}\begin{pmatrix} E & C^{\top} \ 0 & S \end{pmatrix} = \begin{pmatrix} E & C^{\top} \ CE^{-1}E & CE^{-1}C^{\top} + S \end{pmatrix} = \begin{pmatrix} E & C^{\top} \ C & B \end{pmatrix} = \tilde{A}, $$ since and . Symmetry of follows from , using and .
Proposition 2 (the threshold minimises per-row growth). Among single steps and steps, the worst-case element growth per eliminated row, as a function of the threshold , is minimised at , where two consecutive steps and one step share the common growth bound .
Proof. Normalise the active submatrix to maximum entry . A pivot accepted under grows entries by at most (Exercise 7), and two such steps compound to at most per two rows, i.e. per row in the averaged sense the analysis uses. A step is taken when the diagonal is too small, ; the update by with (Proposition 3) inflates entries by a factor that the Bunch-Kaufman analysis bounds by per the two eliminated rows. Equating the two governing rates — the compound rate against the rate — yields the balance equation , i.e. in the normalisation that produces the Bunch-Kaufman constant; solving the associated quadratic for the threshold that equalises the two worst cases and selecting the root in gives . At this value neither pivot choice can grow entries faster than per eliminated row, and any other threshold makes one of the two cases strictly worse.
Proposition 3 (nonsingularity of the pivot). When the Bunch-Kaufman strategy selects a pivot , with , then .
Proof. The branch is reached only when Cases 1, 2a, 2b all fail, so and where , and the search guarantees when this branch is entered. Then . The reverse triangle inequality applied to gives $$ |\det E| \ge |a_{r1}|^2 - |a_{11}|,|a_{rr}| > \lambda^2 - \alpha^2\lambda\sigma. $$ In the regime where the pivot is forced, the controlling scale satisfies is not assumed; instead one uses that the block is chosen on the column-pair realising , and the conservative bound valid because the strategy enters this branch precisely when no single entry of magnitude exceeding qualifies a pivot. Substituting in that regime yields , which is strictly positive since . Hence is nonsingular and the recursion proceeds.
Proposition 4 (inertia identity). For symmetric nonsingular with produced by the diagonal pivoting method, , and with each block contributing .
Proof. By Sylvester's law of inertia, congruent symmetric matrices have equal inertia. The permutation is orthogonal, so and are congruent (via ) and share inertia. The factorization gives , exhibiting as congruent to via the nonsingular unit-lower-triangular , so ; chaining gives . For the blockwise count, and the spectrum of a block-diagonal matrix is the union of the block spectra, so the inertia adds blockwise. A block contributes or by the sign of the pivot. A block produced by the strategy has : it is selected exactly when no admissible pivot exists, forcing in the relevant scaling, so , and a symmetric matrix of negative determinant has one positive and one negative eigenvalue, contributing . Summing over blocks gives from the pivot data alone, and because is nonsingular.
Connections Master
Cholesky factorization and the symmetric positive-definite solve
43.03.02is the definite special case of this unit: when is positive-definite, the Bunch-Kaufman strategy accepts every pivot as a positive block, no block ever arises, and the block collapses to the root-free Cholesky of that unit. This unit owns the indefinite generalisation that keeps the symmetry-halved cost when definiteness fails; that unit owns the unconditional stability that the indefinite case must relax to a controlled but nonconstant growth factor. The shared object is the symmetric Schur-complement recursion, which both factorizations are instances of.Gaussian elimination, LU factorization, and its stability
43.03.01supplies the growth-factor and backward-error framework this unit specialises: the diagonal pivoting method is the symmetric analogue of , the threshold is the symmetric counterpart of the partial-pivoting bound , and Bunch-Parlett complete pivoting mirrors complete pivoting for . The element-growth analysis and the floating-point backward-error charging are imported verbatim from that unit; what changes is that pivoting must act symmetrically as to preserve the diagonal and allow one triangle to do the work of two.Quadratic forms and positive-definiteness
01.01.15furnishes Sylvester's law of inertia, the invariance of the signature under congruence, which is what lets the pivot signs of read off the inertia of . The indefiniteness that defines this unit's setting is exactly the quadratic-form positivity of that unit failing, and the pivots are forced precisely by the directions in which goes negative. This unit turns the abstract inertia of that unit into a computation and into the spectrum-slicing tool for counting eigenvalues in an interval.The spectral theorem
01.01.13guarantees that a real symmetric matrix has real eigenvalues and an orthonormal eigenbasis, so the inertia is well defined and the pivot blocks — themselves symmetric — have real eigenvalues of opposite sign. Where the spectral decomposition diagonalises orthogonally at eigenvalue cost, the block of this unit congruence-diagonalises it into and blocks at the same asymptotic cost but without solving any eigenvalue problem, trading exact eigenvalues for the cheaper inertia and the linear solve.Perturbation and a-posteriori error for linear systems
43.03.03consumes the backward-error bound proved here: once with , the forward-error and residual machinery of that unit converts it into a solution-accuracy guarantee for the symmetric indefinite solve. The bounded- defect of Bunch-Kaufman matters exactly there: the system solve stays accurate, but factorization-derived quantities inherit the growth that rook pivoting removes.
Historical & philosophical context Master
The systematic treatment of symmetric indefinite systems as a distinct numerical problem dates to the early 1970s, when James R. Bunch and Beresford N. Parlett introduced the diagonal pivoting method with and pivots in Direct Methods for Solving Symmetric Indefinite Systems of Linear Equations (SIAM Journal on Numerical Analysis 8, 1971, 639-655), establishing the complete-pivoting strategy and its growth bound. The reduction of the pivot search from the whole-submatrix scan to an one-column search, with the threshold constant and the use of the pivot signs to compute inertia, came from James R. Bunch and Linda Kaufman in Some Stable Methods for Calculating Inertia and Solving Symmetric Linear Systems (Mathematics of Computation 31, 1977, 163-179) [Bunch, J. R. & Kaufman, L. — Some Stable Methods for Calculating Inertia and Solving Symmetric Linear Systems], the algorithm that became the LAPACK routine for symmetric indefinite factorization.
The later analytical history is the recognition of the bounded- defect. Nicholas Higham, in Accuracy and Stability of Numerical Algorithms (SIAM, 1996; 2nd ed. 2002) [Higham, N. J. — Accuracy and Stability of Numerical Algorithms (2nd ed.)], gave the componentwise backward-error analysis showing that Bunch-Kaufman is backward stable for the linear solve despite an unbounded , and the rook-pivoting (bounded Bunch-Kaufman) variant that bounds both growth and was developed by Cleve Ashcraft, Roger Grimes, and John Lewis in Accurate Symmetric Indefinite Linear Equation Solvers (SIAM Journal on Matrix Analysis and Applications 20, 1998, 513-561). The factorization's role in saddle-point and KKT solvers connects it to the optimisation literature of Magnus Hestenes and the equilibrium systems of mixed finite elements, where the inertia count certifies second-order optimality.
Bibliography Master
@book{golubvanloan2013,
author = {Golub, Gene H. and Van Loan, Charles F.},
title = {Matrix Computations},
edition = {4},
publisher = {Johns Hopkins University Press},
year = {2013}
}
@book{higham2002accuracy,
author = {Higham, Nicholas J.},
title = {Accuracy and Stability of Numerical Algorithms},
edition = {2},
publisher = {Society for Industrial and Applied Mathematics},
year = {2002}
}
@article{bunchparlett1971,
author = {Bunch, James R. and Parlett, Beresford N.},
title = {Direct Methods for Solving Symmetric Indefinite Systems of Linear Equations},
journal = {SIAM Journal on Numerical Analysis},
volume = {8},
number = {4},
year = {1971},
pages = {639--655}
}
@article{bunchkaufman1977,
author = {Bunch, James R. and Kaufman, Linda},
title = {Some Stable Methods for Calculating Inertia and Solving Symmetric Linear Systems},
journal = {Mathematics of Computation},
volume = {31},
number = {137},
year = {1977},
pages = {163--179}
}
@article{ashcraftgrimeslewis1998,
author = {Ashcraft, Cleve and Grimes, Roger G. and Lewis, John G.},
title = {Accurate Symmetric Indefinite Linear Equation Solvers},
journal = {SIAM Journal on Matrix Analysis and Applications},
volume = {20},
number = {2},
year = {1998},
pages = {513--561}
}