Public Types | Public Member Functions | 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

typedef MatrixType::Index Index
 
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 SparseMatrix< Scalar, ColMajor, int > UmfpackMatrixType
 
typedef Matrix< Scalar, Dynamic, 1 > Vector
 

Public Member Functions

template<typename BDerived , typename XDerived >
bool _solve (const MatrixBase< BDerived > &b, MatrixBase< XDerived > &x) const
 
void analyzePattern (const MatrixType &matrix)
 
Index cols () const
 
void compute (const MatrixType &matrix)
 
Scalar determinant () const
 
void extractData () const
 
void factorize (const MatrixType &matrix)
 
ComputationInfo info () const
 Reports whether previous computation was successful. More...
 
const LUMatrixTypematrixL () const
 
const LUMatrixTypematrixU () const
 
const IntColVectorTypepermutationP () const
 
const IntRowVectorTypepermutationQ () const
 
Index rows () const
 
template<typename Rhs >
const internal::solve_retval< UmfPackLU, Rhs > solve (const MatrixBase< Rhs > &b) const
 
template<typename Rhs >
const internal::sparse_solve_retval< UmfPackLU, Rhs > solve (const SparseMatrixBase< Rhs > &b) const
 
 UmfPackLU ()
 
 UmfPackLU (const MatrixType &matrix)
 
 ~UmfPackLU ()
 

Protected Member Functions

void grapInput (const MatrixType &mat)
 
void init ()
 

Protected Attributes

int m_analysisIsOk
 
UmfpackMatrixType m_copyMatrix
 
bool m_extractedDataAreDirty
 
int m_factorizationIsOk
 
ComputationInfo m_info
 
const int * m_innerIndexPtr
 
bool m_isInitialized
 
LUMatrixType m_l
 
void * m_numeric
 
const int * m_outerIndexPtr
 
IntColVectorType m_p
 
IntRowVectorType m_q
 
void * m_symbolic
 
LUMatrixType m_u
 
const Scalarm_valuePtr
 

Private Member Functions

 UmfPackLU (UmfPackLU &)
 
- Private Member Functions inherited from Eigen::internal::noncopyable
 noncopyable ()
 
 ~noncopyable ()
 

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
TutorialSparseDirectSolvers

Definition at line 124 of file UmfPackSupport.h.

Member Typedef Documentation

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

Definition at line 130 of file UmfPackSupport.h.

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

Definition at line 133 of file UmfPackSupport.h.

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

Definition at line 132 of file UmfPackSupport.h.

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

Definition at line 134 of file UmfPackSupport.h.

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

Definition at line 127 of file UmfPackSupport.h.

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

Definition at line 129 of file UmfPackSupport.h.

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

Definition at line 128 of file UmfPackSupport.h.

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

Definition at line 135 of file UmfPackSupport.h.

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

Definition at line 131 of file UmfPackSupport.h.

Constructor & Destructor Documentation

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

Definition at line 139 of file UmfPackSupport.h.

template<typename _MatrixType>
Eigen::UmfPackLU< _MatrixType >::UmfPackLU ( const MatrixType matrix)
inline

Definition at line 141 of file UmfPackSupport.h.

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

Definition at line 147 of file UmfPackSupport.h.

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

Definition at line 337 of file UmfPackSupport.h.

Member Function Documentation

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

Definition at line 379 of file UmfPackSupport.h.

template<typename _MatrixType>
void Eigen::UmfPackLU< _MatrixType >::analyzePattern ( const MatrixType 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 233 of file UmfPackSupport.h.

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

Definition at line 154 of file UmfPackSupport.h.

template<typename _MatrixType>
void Eigen::UmfPackLU< _MatrixType >::compute ( const MatrixType 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 195 of file UmfPackSupport.h.

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

Definition at line 370 of file UmfPackSupport.h.

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

Definition at line 342 of file UmfPackSupport.h.

template<typename _MatrixType>
void Eigen::UmfPackLU< _MatrixType >::factorize ( const MatrixType 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 258 of file UmfPackSupport.h.

template<typename _MatrixType>
void Eigen::UmfPackLU< _MatrixType >::grapInput ( const MatrixType mat)
inlineprotected

Definition at line 298 of file UmfPackSupport.h.

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

Reports whether previous computation was successful.

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

Definition at line 161 of file UmfPackSupport.h.

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

Definition at line 287 of file UmfPackSupport.h.

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

Definition at line 167 of file UmfPackSupport.h.

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

Definition at line 173 of file UmfPackSupport.h.

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

Definition at line 179 of file UmfPackSupport.h.

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

Definition at line 185 of file UmfPackSupport.h.

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

Definition at line 153 of file UmfPackSupport.h.

template<typename _MatrixType>
template<typename Rhs >
const internal::solve_retval<UmfPackLU, Rhs> Eigen::UmfPackLU< _MatrixType >::solve ( const MatrixBase< Rhs > &  b) const
inline
Returns
the solution x of $ A x = b $ using the current decomposition of A.
See also
compute()

Definition at line 206 of file UmfPackSupport.h.

template<typename _MatrixType>
template<typename Rhs >
const internal::sparse_solve_retval<UmfPackLU, Rhs> Eigen::UmfPackLU< _MatrixType >::solve ( const SparseMatrixBase< Rhs > &  b) const
inline
Returns
the solution x of $ A x = b $ using the current decomposition of A.
See also
compute()

Definition at line 219 of file UmfPackSupport.h.

Member Data Documentation

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

Definition at line 333 of file UmfPackSupport.h.

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

Definition at line 323 of file UmfPackSupport.h.

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

Definition at line 334 of file UmfPackSupport.h.

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

Definition at line 332 of file UmfPackSupport.h.

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

Definition at line 330 of file UmfPackSupport.h.

template<typename _MatrixType>
const int* Eigen::UmfPackLU< _MatrixType >::m_innerIndexPtr
protected

Definition at line 326 of file UmfPackSupport.h.

template<typename _MatrixType>
bool Eigen::UmfPackLU< _MatrixType >::m_isInitialized
protected

Definition at line 331 of file UmfPackSupport.h.

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

Definition at line 318 of file UmfPackSupport.h.

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

Definition at line 327 of file UmfPackSupport.h.

template<typename _MatrixType>
const int* Eigen::UmfPackLU< _MatrixType >::m_outerIndexPtr
protected

Definition at line 325 of file UmfPackSupport.h.

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

Definition at line 320 of file UmfPackSupport.h.

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

Definition at line 321 of file UmfPackSupport.h.

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

Definition at line 328 of file UmfPackSupport.h.

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

Definition at line 319 of file UmfPackSupport.h.

template<typename _MatrixType>
const Scalar* Eigen::UmfPackLU< _MatrixType >::m_valuePtr
protected

Definition at line 324 of file UmfPackSupport.h.


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


acado
Author(s): Milan Vukov, Rien Quirynen
autogenerated on Mon Jun 10 2019 12:35:42