template<typename _MatrixType>
Eigen::UmfPackLU class

A sparse LU factorization and solver based on UmfPack.

Template parameters
_MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>

Contents

This class allows to solve for A.X = B sparse linear problems via a LU factorization using the UmfPack library. The sparse matrix A must be squared and full rank. The vectors or matrices X and B can be either dense or sparse.

This class follows the sparse solver concept.

Base classes

template<typename Derived>
class SparseSolverBase
A base class for sparse solvers.

Public functions

template<typename InputMatrixType>
void analyzePattern(const InputMatrixType& matrix)
template<typename InputMatrixType>
void compute(const InputMatrixType& matrix)
template<typename InputMatrixType>
void factorize(const InputMatrixType& matrix)
auto info() const -> ComputationInfo
Reports whether previous computation was successful.
void printUmfpackControl()
void printUmfpackInfo()
void printUmfpackStatus()
auto umfpackControl() const -> const UmfpackControl&
auto umfpackControl() -> UmfpackControl&
auto umfpackFactorizeReturncode() const -> int

Function documentation

template<typename _MatrixType> template<typename InputMatrixType>
void Eigen::UmfPackLU<_MatrixType>::analyzePattern(const InputMatrixType& matrix)

Performs a symbolic decomposition on the sparcity of matrix.

This function is particularly useful when solving for several problems having the same structure.

template<typename _MatrixType> template<typename InputMatrixType>
void Eigen::UmfPackLU<_MatrixType>::compute(const InputMatrixType& matrix)

Computes the sparse Cholesky decomposition of matrix Note that the matrix should be column-major, and in compressed format for best performance.

template<typename _MatrixType> template<typename InputMatrixType>
void Eigen::UmfPackLU<_MatrixType>::factorize(const InputMatrixType& matrix)

Performs a numeric decomposition of matrix

The given matrix must has the same sparcity than the matrix on which the pattern anylysis has been performed.

template<typename _MatrixType>
ComputationInfo Eigen::UmfPackLU<_MatrixType>::info() const

Reports whether previous computation was successful.

Returns Success if computation was successful, NumericalIssue if the matrix.appears to be negative.

template<typename _MatrixType>
void Eigen::UmfPackLU<_MatrixType>::printUmfpackControl()

Prints the current UmfPack control settings.

template<typename _MatrixType>
void Eigen::UmfPackLU<_MatrixType>::printUmfpackInfo()

Prints statistics collected by UmfPack.

template<typename _MatrixType>
void Eigen::UmfPackLU<_MatrixType>::printUmfpackStatus()

Prints the status of the previous factorization operation performed by UmfPack (symbolic or numerical factorization).

template<typename _MatrixType>
const UmfpackControl& Eigen::UmfPackLU<_MatrixType>::umfpackControl() const

Provides access to the control settings array used by UmfPack.

If this array contains NaN's, the default values are used.

See UMFPACK documentation for details.

template<typename _MatrixType>
UmfpackControl& Eigen::UmfPackLU<_MatrixType>::umfpackControl()

Provides access to the control settings array used by UmfPack.

If this array contains NaN's, the default values are used.

See UMFPACK documentation for details.

template<typename _MatrixType>
int Eigen::UmfPackLU<_MatrixType>::umfpackFactorizeReturncode() const

Provides the return status code returned by UmfPack during the numeric factorization.