Pivoting schemes for dense matrices can be set to 0
for no pivoting,
1
(default) for partial pivoting, or 2
for full pivoting. Not
all schemes are available for every decomposition:
* solve_chol()
The default is pivot = 1
for the robust LDLT
decomposition of \(A\), such that \(A = P'LDL^*P\). For
the LDLT \(A\) needs to be positive or negative semidefinite. Set
pivot = 0
for the plain LLT decomposition of \(A\), such that
\(A = LL^* = U^*U\). For the LLT \(A\) needs to be
positive definite and preferably numerically stable.
* solve_lu()
The default is pivot = 1
for the partial pivoting
LU decomposition of \(A\), such that \(A = PLU\). For this
scheme \(A\) needs to be invertible and preferably numerically stable. Set
pivot = 2
for the complete pivoting LU decomposition of \(A\),
such that \(A = P^{-1}LUQ^{-1}\). This scheme is applicable to
square matrices, rank-revealing, and stable.
solve_qr()
The default is pivot = 1
for the column pivoting
Householder QR decomposition of \(A\), such that \(AP = QR\).
This scheme is generally applicable, rank-revealing, and stable. Set
pivot = 2
for the full pivoting Householder QR decomposition of
\(A\), such that \(PAP' = QR\). This scheme is generally
applicable, rank-revealing, and optimally stable. Set pivot = 0
for
an unpivoted Householder QR decomposition of \(A\), such that
\(A = QR\). This scheme is generally applicable, but not as stable
as pivoted variants.
Ordering schemes for sparse matrices can be set to 0
for approximate
minimum degree (AMD) ordering, 1
for column approximate minimum degree
(COLAMD) ordering, or 2
for natural ordering. Not all orderings are
available for every decomposition:
* solve_chol()
The default is ordering = 0
for AMD ordering.
Set ordering = 2
for natural ordering.
* solve_lu()
The default is ordering = 1
for COLAMD ordering.
Set ordering = 0
for AMD or ordering = 2
for natural ordering.
* solve_qr()
The default is ordering = 1
for COLAMD ordering.
Set ordering = 0
for AMD or ordering = 2
for natural ordering.