Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
Eigen::UmfPackLU< _MatrixType > Class Template Reference

A sparse LU factorization and solver based on UmfPack. More...

#include <UmfPackSupport.h>

Inheritance diagram for Eigen::UmfPackLU< _MatrixType >:
Inheritance graph
[legend]

Public Types

enum  { ColsAtCompileTime = MatrixType::ColsAtCompileTime, MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime }
 
typedef Matrix< int, MatrixType::RowsAtCompileTime, 1 > IntColVectorType
 
typedef Matrix< int, 1, MatrixType::ColsAtCompileTime > IntRowVectorType
 
typedef SparseMatrix< ScalarLUMatrixType
 
typedef _MatrixType MatrixType
 
typedef MatrixType::RealScalar RealScalar
 
typedef MatrixType::Scalar Scalar
 
typedef MatrixType::StorageIndex StorageIndex
 
typedef Array< double, UMFPACK_CONTROL, 1 > UmfpackControl
 
typedef Array< double, UMFPACK_INFO, 1 > UmfpackInfo
 
typedef Ref< const UmfpackMatrixType, StandardCompressedFormatUmfpackMatrixRef
 
typedef SparseMatrix< Scalar, ColMajor, StorageIndexUmfpackMatrixType
 
typedef Matrix< Scalar, Dynamic, 1 > Vector
 

Public Member Functions

template<typename BDerived , typename XDerived >
bool _solve_impl (const MatrixBase< BDerived > &b, MatrixBase< XDerived > &x) const
 
template<typename InputMatrixType >
void analyzePattern (const InputMatrixType &matrix)
 
Index cols () const
 
template<typename InputMatrixType >
void compute (const InputMatrixType &matrix)
 
Scalar determinant () const
 
void extractData () const
 
template<typename InputMatrixType >
void factorize (const InputMatrixType &matrix)
 
ComputationInfo info () const
 Reports whether previous computation was successful. More...
 
const LUMatrixTypematrixL () const
 
const LUMatrixTypematrixU () const
 
const IntColVectorTypepermutationP () const
 
const IntRowVectorTypepermutationQ () const
 
void printUmfpackControl ()
 
void printUmfpackInfo ()
 
void printUmfpackStatus ()
 
Index rows () const
 
const UmfpackControlumfpackControl () const
 
UmfpackControlumfpackControl ()
 
int umfpackFactorizeReturncode () const
 
 UmfPackLU ()
 
template<typename InputMatrixType >
 UmfPackLU (const InputMatrixType &matrix)
 
 ~UmfPackLU ()
 
- Public Member Functions inherited from Eigen::SparseSolverBase< UmfPackLU< _MatrixType > >
void _solve_impl (const SparseMatrixBase< Rhs > &b, SparseMatrixBase< Dest > &dest) const
 
UmfPackLU< _MatrixType > & derived ()
 
const UmfPackLU< _MatrixType > & derived () const
 
const Solve< UmfPackLU< _MatrixType >, Rhs > solve (const MatrixBase< Rhs > &b) const
 
const Solve< UmfPackLU< _MatrixType >, Rhs > solve (const SparseMatrixBase< Rhs > &b) const
 
 SparseSolverBase ()
 
 ~SparseSolverBase ()
 

Protected Types

typedef SparseSolverBase< UmfPackLU< _MatrixType > > Base
 

Protected Member Functions

void analyzePattern_impl ()
 
void factorize_impl ()
 
template<typename MatrixDerived >
void grab (const EigenBase< MatrixDerived > &A)
 
void grab (const UmfpackMatrixRef &A)
 
void init ()
 

Protected Attributes

int m_analysisIsOk
 
UmfpackControl m_control
 
UmfpackMatrixType m_dummy
 
bool m_extractedDataAreDirty
 
StorageIndex m_fact_errorCode
 
int m_factorizationIsOk
 
ComputationInfo m_info
 
LUMatrixType m_l
 
void * m_numeric
 
IntColVectorType m_p
 
IntRowVectorType m_q
 
void * m_symbolic
 
LUMatrixType m_u
 
UmfpackInfo m_umfpackInfo
 
UmfpackMatrixRef mp_matrix
 
- Protected Attributes inherited from Eigen::SparseSolverBase< UmfPackLU< _MatrixType > >
bool m_isInitialized
 

Private Member Functions

 UmfPackLU (const UmfPackLU &)
 

Detailed Description

template<typename _MatrixType>
class Eigen::UmfPackLU< _MatrixType >

A sparse LU factorization and solver based on UmfPack.

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.

Warning
The input matrix A should be in a compressed and column-major form. Otherwise an expensive copy will be made. You can call the inexpensive makeCompressed() to get a compressed matrix.
Template Parameters
_MatrixTypethe type of the sparse matrix A, it must be a SparseMatrix<>
See also
Sparse solver concept, class SparseLU

Definition at line 288 of file UmfPackSupport.h.

Member Typedef Documentation

◆ Base

template<typename _MatrixType>
typedef SparseSolverBase<UmfPackLU<_MatrixType> > Eigen::UmfPackLU< _MatrixType >::Base
protected

Definition at line 291 of file UmfPackSupport.h.

◆ IntColVectorType

template<typename _MatrixType>
typedef Matrix<int, MatrixType::RowsAtCompileTime, 1> Eigen::UmfPackLU< _MatrixType >::IntColVectorType

Definition at line 301 of file UmfPackSupport.h.

◆ IntRowVectorType

template<typename _MatrixType>
typedef Matrix<int, 1, MatrixType::ColsAtCompileTime> Eigen::UmfPackLU< _MatrixType >::IntRowVectorType

Definition at line 300 of file UmfPackSupport.h.

◆ LUMatrixType

template<typename _MatrixType>
typedef SparseMatrix<Scalar> Eigen::UmfPackLU< _MatrixType >::LUMatrixType

Definition at line 302 of file UmfPackSupport.h.

◆ MatrixType

template<typename _MatrixType>
typedef _MatrixType Eigen::UmfPackLU< _MatrixType >::MatrixType

Definition at line 295 of file UmfPackSupport.h.

◆ RealScalar

template<typename _MatrixType>
typedef MatrixType::RealScalar Eigen::UmfPackLU< _MatrixType >::RealScalar

Definition at line 297 of file UmfPackSupport.h.

◆ Scalar

template<typename _MatrixType>
typedef MatrixType::Scalar Eigen::UmfPackLU< _MatrixType >::Scalar

Definition at line 296 of file UmfPackSupport.h.

◆ StorageIndex

template<typename _MatrixType>
typedef MatrixType::StorageIndex Eigen::UmfPackLU< _MatrixType >::StorageIndex

Definition at line 298 of file UmfPackSupport.h.

◆ UmfpackControl

template<typename _MatrixType>
typedef Array<double, UMFPACK_CONTROL, 1> Eigen::UmfPackLU< _MatrixType >::UmfpackControl

Definition at line 312 of file UmfPackSupport.h.

◆ UmfpackInfo

template<typename _MatrixType>
typedef Array<double, UMFPACK_INFO, 1> Eigen::UmfPackLU< _MatrixType >::UmfpackInfo

Definition at line 313 of file UmfPackSupport.h.

◆ UmfpackMatrixRef

template<typename _MatrixType>
typedef Ref<const UmfpackMatrixType, StandardCompressedFormat> Eigen::UmfPackLU< _MatrixType >::UmfpackMatrixRef

Definition at line 304 of file UmfPackSupport.h.

◆ UmfpackMatrixType

template<typename _MatrixType>
typedef SparseMatrix<Scalar,ColMajor,StorageIndex> Eigen::UmfPackLU< _MatrixType >::UmfpackMatrixType

Definition at line 303 of file UmfPackSupport.h.

◆ Vector

template<typename _MatrixType>
typedef Matrix<Scalar,Dynamic,1> Eigen::UmfPackLU< _MatrixType >::Vector

Definition at line 299 of file UmfPackSupport.h.

Member Enumeration Documentation

◆ anonymous enum

template<typename _MatrixType>
anonymous enum
Enumerator
ColsAtCompileTime 
MaxColsAtCompileTime 

Definition at line 305 of file UmfPackSupport.h.

Constructor & Destructor Documentation

◆ UmfPackLU() [1/3]

template<typename _MatrixType>
Eigen::UmfPackLU< _MatrixType >::UmfPackLU ( )
inline

Definition at line 315 of file UmfPackSupport.h.

◆ UmfPackLU() [2/3]

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

Definition at line 322 of file UmfPackSupport.h.

◆ ~UmfPackLU()

template<typename _MatrixType>
Eigen::UmfPackLU< _MatrixType >::~UmfPackLU ( )
inline

Definition at line 329 of file UmfPackSupport.h.

◆ UmfPackLU() [3/3]

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

Definition at line 567 of file UmfPackSupport.h.

Member Function Documentation

◆ _solve_impl()

template<typename MatrixType >
template<typename BDerived , typename XDerived >
bool Eigen::UmfPackLU< MatrixType >::_solve_impl ( const MatrixBase< BDerived > &  b,
MatrixBase< XDerived > &  x 
) const

Definition at line 609 of file UmfPackSupport.h.

◆ analyzePattern()

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

Performs a symbolic decomposition on the sparcity of matrix.

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

See also
factorize(), compute()

Definition at line 394 of file UmfPackSupport.h.

◆ analyzePattern_impl()

template<typename _MatrixType>
void Eigen::UmfPackLU< _MatrixType >::analyzePattern_impl ( )
inlineprotected

Definition at line 504 of file UmfPackSupport.h.

◆ cols()

template<typename _MatrixType>
Index Eigen::UmfPackLU< _MatrixType >::cols ( void  ) const
inline

Definition at line 336 of file UmfPackSupport.h.

◆ compute()

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

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

See also
SparseMatrix::makeCompressed().

Definition at line 378 of file UmfPackSupport.h.

◆ determinant()

template<typename MatrixType >
UmfPackLU< MatrixType >::Scalar Eigen::UmfPackLU< MatrixType >::determinant ( ) const

Definition at line 600 of file UmfPackSupport.h.

◆ extractData()

template<typename MatrixType >
void Eigen::UmfPackLU< MatrixType >::extractData ( ) const

Definition at line 572 of file UmfPackSupport.h.

◆ factorize()

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

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.

See also
analyzePattern(), compute()

Definition at line 444 of file UmfPackSupport.h.

◆ factorize_impl()

template<typename _MatrixType>
void Eigen::UmfPackLU< _MatrixType >::factorize_impl ( )
inlineprotected

Definition at line 518 of file UmfPackSupport.h.

◆ grab() [1/2]

template<typename _MatrixType>
template<typename MatrixDerived >
void Eigen::UmfPackLU< _MatrixType >::grab ( const EigenBase< MatrixDerived > &  A)
inlineprotected

Definition at line 530 of file UmfPackSupport.h.

◆ grab() [2/2]

template<typename _MatrixType>
void Eigen::UmfPackLU< _MatrixType >::grab ( const UmfpackMatrixRef A)
inlineprotected

Definition at line 536 of file UmfPackSupport.h.

◆ info()

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

Reports whether previous computation was successful.

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

Definition at line 343 of file UmfPackSupport.h.

◆ init()

template<typename _MatrixType>
void Eigen::UmfPackLU< _MatrixType >::init ( )
inlineprotected

Definition at line 493 of file UmfPackSupport.h.

◆ matrixL()

template<typename _MatrixType>
const LUMatrixType& Eigen::UmfPackLU< _MatrixType >::matrixL ( ) const
inline

Definition at line 349 of file UmfPackSupport.h.

◆ matrixU()

template<typename _MatrixType>
const LUMatrixType& Eigen::UmfPackLU< _MatrixType >::matrixU ( ) const
inline

Definition at line 355 of file UmfPackSupport.h.

◆ permutationP()

template<typename _MatrixType>
const IntColVectorType& Eigen::UmfPackLU< _MatrixType >::permutationP ( ) const
inline

Definition at line 361 of file UmfPackSupport.h.

◆ permutationQ()

template<typename _MatrixType>
const IntRowVectorType& Eigen::UmfPackLU< _MatrixType >::permutationQ ( ) const
inline

Definition at line 367 of file UmfPackSupport.h.

◆ printUmfpackControl()

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

Prints the current UmfPack control settings.

See also
umfpackControl()

Definition at line 459 of file UmfPackSupport.h.

◆ printUmfpackInfo()

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

Prints statistics collected by UmfPack.

See also
analyzePattern(), compute()

Definition at line 468 of file UmfPackSupport.h.

◆ printUmfpackStatus()

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

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

See also
analyzePattern(), compute()

Definition at line 478 of file UmfPackSupport.h.

◆ rows()

template<typename _MatrixType>
Index Eigen::UmfPackLU< _MatrixType >::rows ( void  ) const
inline

Definition at line 335 of file UmfPackSupport.h.

◆ umfpackControl() [1/2]

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

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.

Definition at line 421 of file UmfPackSupport.h.

◆ umfpackControl() [2/2]

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

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.

Definition at line 432 of file UmfPackSupport.h.

◆ umfpackFactorizeReturncode()

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

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

See also
factorize(), compute()

Definition at line 409 of file UmfPackSupport.h.

Member Data Documentation

◆ m_analysisIsOk

template<typename _MatrixType>
int Eigen::UmfPackLU< _MatrixType >::m_analysisIsOk
protected

Definition at line 563 of file UmfPackSupport.h.

◆ m_control

template<typename _MatrixType>
UmfpackControl Eigen::UmfPackLU< _MatrixType >::m_control
protected

Definition at line 548 of file UmfPackSupport.h.

◆ m_dummy

template<typename _MatrixType>
UmfpackMatrixType Eigen::UmfPackLU< _MatrixType >::m_dummy
protected

Definition at line 555 of file UmfPackSupport.h.

◆ m_extractedDataAreDirty

template<typename _MatrixType>
bool Eigen::UmfPackLU< _MatrixType >::m_extractedDataAreDirty
mutableprotected

Definition at line 564 of file UmfPackSupport.h.

◆ m_fact_errorCode

template<typename _MatrixType>
StorageIndex Eigen::UmfPackLU< _MatrixType >::m_fact_errorCode
protected

Definition at line 547 of file UmfPackSupport.h.

◆ m_factorizationIsOk

template<typename _MatrixType>
int Eigen::UmfPackLU< _MatrixType >::m_factorizationIsOk
protected

Definition at line 562 of file UmfPackSupport.h.

◆ m_info

template<typename _MatrixType>
ComputationInfo Eigen::UmfPackLU< _MatrixType >::m_info
mutableprotected

Definition at line 561 of file UmfPackSupport.h.

◆ m_l

template<typename _MatrixType>
LUMatrixType Eigen::UmfPackLU< _MatrixType >::m_l
mutableprotected

Definition at line 546 of file UmfPackSupport.h.

◆ m_numeric

template<typename _MatrixType>
void* Eigen::UmfPackLU< _MatrixType >::m_numeric
protected

Definition at line 558 of file UmfPackSupport.h.

◆ m_p

template<typename _MatrixType>
IntColVectorType Eigen::UmfPackLU< _MatrixType >::m_p
mutableprotected

Definition at line 552 of file UmfPackSupport.h.

◆ m_q

template<typename _MatrixType>
IntRowVectorType Eigen::UmfPackLU< _MatrixType >::m_q
mutableprotected

Definition at line 553 of file UmfPackSupport.h.

◆ m_symbolic

template<typename _MatrixType>
void* Eigen::UmfPackLU< _MatrixType >::m_symbolic
protected

Definition at line 559 of file UmfPackSupport.h.

◆ m_u

template<typename _MatrixType>
LUMatrixType Eigen::UmfPackLU< _MatrixType >::m_u
mutableprotected

Definition at line 551 of file UmfPackSupport.h.

◆ m_umfpackInfo

template<typename _MatrixType>
UmfpackInfo Eigen::UmfPackLU< _MatrixType >::m_umfpackInfo
mutableprotected

Definition at line 549 of file UmfPackSupport.h.

◆ mp_matrix

template<typename _MatrixType>
UmfpackMatrixRef Eigen::UmfPackLU< _MatrixType >::mp_matrix
protected

Definition at line 556 of file UmfPackSupport.h.


The documentation for this class was generated from the following file:


gtsam
Author(s):
autogenerated on Tue Jul 4 2023 02:44:19