Most of the work is performed in the last two lines, solving a triangular
system with
many right-hand sides, and matrix multiplication. Other similar algorithms
may be derived
by conformally partitioning L, U and A, and equating partitions
in A=LU.
Algorithms 6.3 and 6.4 are available as,
respectively, subroutines sgetf2 and
sgetrf in LAPACK [2].
(See exercise 13.)
The LAPACK routine implementing Cholesky is sposv. Other matrix
structures handled by LAPACK include
- packed symmetric positive definite matrices, i.e. stored in half the
space of a full dense matrix ( sppsv)
- symmetric indefinite matrices,
i.e. symmetric but not necessarily positive definite matrices ( ssysv),
- packed symmetric indefinite matrices, i.e. stored in half the space of
a full dense matrix ( sspsv),
- band matrices, i.e. those nonzero only within a fixed distance from the
main diagonal ( sgbsv),
- tridiagonal matrices, i.e. a special case of band matrices which are
nonzero only on the diagonal, immediately above it and immediately below it ( sgtsv),
- symmetric positive definite band matrices ( spbsv), and
- symmetric positive definite tridiagonal matrices ( sptsv).
There are also double precision, complex, and double precision complex counterparts of
all LAPACK routines (replace the leading 's' in the subroutine name by 'd', 'c', and
'z', respectively).