Skip to content

Commit dfb8134

Browse files
authored
Clarify pros, cons and limitations of Cholesky and LDLt
1 parent 16bbcbc commit dfb8134

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

src/solvers/cholmod.jl

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1563,6 +1563,9 @@ Setting the optional `shift` keyword argument computes the factorization of
15631563
it should be a permutation of `1:size(A,1)` giving the ordering to use
15641564
(instead of CHOLMOD's default AMD ordering).
15651565
1566+
See also [`ldlt`](@ref) for a similar factorization that does not require
1567+
positive definiteness, but can be significantly slower than `cholesky`.
1568+
15661569
# Examples
15671570
15681571
In the following example, the fill-reducing permutation used is `[3, 2, 1]`.
@@ -1728,15 +1731,22 @@ To include the effects of permutation, it is typically preferable to extract
17281731
`P'*L`) and `LtP = F.UP` (the equivalent of `L'*P`).
17291732
The complete list of supported factors is `:L, :PtL, :D, :UP, :U, :LD, :DU, :PtLD, :DUP`.
17301733
1734+
Unlike the related Cholesky factorization, the ``LDL'`` factorization does not
1735+
require `A` to be positive definite. However, it requires all leading principal
1736+
minors to be well-conditioned and will fail if this is not satisfied.
1737+
17311738
When `check = true`, an error is thrown if the decomposition fails.
17321739
When `check = false`, responsibility for checking the decomposition's
1733-
validity (via [`issuccess`](@ref)) lies with the user.
1740+
validity (via [`issuccess`](@ref)) lies with the user. Failure of the
17341741
17351742
Setting the optional `shift` keyword argument computes the factorization of
17361743
`A+shift*I` instead of `A`. If the `perm` argument is provided,
17371744
it should be a permutation of `1:size(A,1)` giving the ordering to use
17381745
(instead of CHOLMOD's default AMD ordering).
17391746
1747+
See also [`cholesky`](@ref) for a factorization that can be significantly
1748+
faster than `ldlt`, but requires `A` to be positive definite.
1749+
17401750
!!! note
17411751
This method uses the CHOLMOD[^ACM887][^DavisHager2009] library from [SuiteSparse](https://github.com/DrTimothyAldenDavis/SuiteSparse).
17421752
CHOLMOD only supports real or complex types in single or double precision.

0 commit comments

Comments
 (0)