# Sparse Linear Algebra

Sparse matrix solvers call functions from SuiteSparse. The following factorizations are available:

TypeDescription
SuiteSparse.CHOLMOD.FactorCholesky factorization
SuiteSparse.UMFPACK.UmfpackLULU factorization
SuiteSparse.SPQR.QRSparseQR factorization

Other solvers such as Pardiso.jl are as external packages. Arpack.jl provides eigs and svds for iterative solution of eigensystems and singular value decompositions.

These factorizations are described in the Linear Algebra section of the manual:

SuiteSparse.CHOLMOD.lowrankupdateFunction
lowrankupdate(F::CHOLMOD.Factor, C::AbstractArray) -> FF::CHOLMOD.Factor

Get an LDLt Factorization of A + C*C' given an LDLt or LLt factorization F of A.

The returned factor is always an LDLt factorization.

SuiteSparse.CHOLMOD.lowrankupdate!Function
lowrankupdate!(F::CHOLMOD.Factor, C::AbstractArray)

Update an LDLt or LLt Factorization F of A to a factorization of A + C*C'.

LLt factorizations are converted to LDLt.

SuiteSparse.CHOLMOD.lowrankdowndateFunction
lowrankupdate(F::CHOLMOD.Factor, C::AbstractArray) -> FF::CHOLMOD.Factor

Get an LDLt Factorization of A + C*C' given an LDLt or LLt factorization F of A.

The returned factor is always an LDLt factorization.

SuiteSparse.CHOLMOD.lowrankdowndate!Function
lowrankdowndate!(F::CHOLMOD.Factor, C::AbstractArray)

Update an LDLt or LLt Factorization F of A to a factorization of A - C*C'.

LLt factorizations are converted to LDLt.

SuiteSparse.CHOLMOD.lowrankupdowndate!Function
lowrankupdowndate!(F::CHOLMOD.Factor, C::Sparse, update::Cint)

Update an LDLt or LLt Factorization F of A to a factorization of A ± C*C'.

If sparsity preserving factorization is used, i.e. L*L' == P*A*P' then the new factor will be L*L' == P*A*P' + C'*C

update: Cint(1) for A + CC', Cint(0) for A - CC'