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

Sparse QR factorization based on SuiteSparseQR library. More...

#include <SuiteSparseQRSupport.h>

Public Types

typedef UF_long Index
 
typedef SparseMatrix< Scalar, ColMajor, IndexMatrixType
 
typedef PermutationMatrix< Dynamic, DynamicPermutationType
 
typedef _MatrixType::RealScalar RealScalar
 
typedef _MatrixType::Scalar Scalar
 

Public Member Functions

template<typename Rhs , typename Dest >
void _solve (const MatrixBase< Rhs > &b, MatrixBase< Dest > &dest) const
 
cholmod_common * cholmodCommon () const
 
Index cols () const
 
PermutationType colsPermutation () const
 Get the permutation that was applied to columns of A. More...
 
void compute (const _MatrixType &matrix)
 
ComputationInfo info () const
 Reports whether previous computation was successful. More...
 
SPQRMatrixQReturnType< SPQRmatrixQ () const
 Get an expression of the matrix Q. More...
 
const MatrixType matrixR () const
 
Index rank () const
 
Index rows () const
 
void setPivotThreshold (const RealScalar &tol)
 Set the tolerance tol to treat columns with 2-norm < =tol as zero. More...
 
void setSPQROrdering (int ord)
 Set the fill-reducing ordering method to be used. More...
 
template<typename Rhs >
const internal::solve_retval< SPQR, Rhs > solve (const MatrixBase< Rhs > &B) const
 
 SPQR ()
 
 SPQR (const _MatrixType &matrix)
 
 ~SPQR ()
 

Protected Attributes

int m_allow_tol
 
bool m_analysisIsOk
 
cholmod_common m_cc
 
cholmod_sparse * m_cR
 
Indexm_E
 
bool m_factorizationIsOk
 
cholmod_sparse * m_H
 
Indexm_HPinv
 
cholmod_dense * m_HTau
 
ComputationInfo m_info
 
bool m_isInitialized
 
bool m_isRUpToDate
 
int m_ordering
 
MatrixType m_R
 
Index m_rank
 
RealScalar m_tolerance
 

Friends

template<typename , typename >
struct SPQR_QProduct
 

Detailed Description

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

Sparse QR factorization based on SuiteSparseQR library.

This class is used to perform a multithreaded and multifrontal rank-revealing QR decomposition of sparse matrices. The result is then used to solve linear leasts_square systems. Clearly, a QR factorization is returned such that A*P = Q*R where :

P is the column permutation. Use colsPermutation() to get it.

Q is the orthogonal matrix represented as Householder reflectors. Use matrixQ() to get an expression and matrixQ().transpose() to get the transpose. You can then apply it to a vector.

R is the sparse triangular factor. Use matrixQR() to get it as SparseMatrix. NOTE : The Index type of R is always UF_long. You can get it with SPQR::Index

Template Parameters
_MatrixTypeThe type of the sparse matrix A, must be a column-major SparseMatrix<> NOTE

Definition at line 15 of file SuiteSparseQRSupport.h.

Member Typedef Documentation

template<typename _MatrixType >
typedef UF_long Eigen::SPQR< _MatrixType >::Index

Definition at line 62 of file SuiteSparseQRSupport.h.

template<typename _MatrixType >
typedef SparseMatrix<Scalar, ColMajor, Index> Eigen::SPQR< _MatrixType >::MatrixType

Definition at line 63 of file SuiteSparseQRSupport.h.

template<typename _MatrixType >
typedef PermutationMatrix<Dynamic, Dynamic> Eigen::SPQR< _MatrixType >::PermutationType

Definition at line 64 of file SuiteSparseQRSupport.h.

template<typename _MatrixType >
typedef _MatrixType::RealScalar Eigen::SPQR< _MatrixType >::RealScalar

Definition at line 61 of file SuiteSparseQRSupport.h.

template<typename _MatrixType >
typedef _MatrixType::Scalar Eigen::SPQR< _MatrixType >::Scalar

Definition at line 60 of file SuiteSparseQRSupport.h.

Constructor & Destructor Documentation

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

Definition at line 66 of file SuiteSparseQRSupport.h.

template<typename _MatrixType >
Eigen::SPQR< _MatrixType >::SPQR ( const _MatrixType &  matrix)
inline

Definition at line 74 of file SuiteSparseQRSupport.h.

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

Definition at line 83 of file SuiteSparseQRSupport.h.

Member Function Documentation

template<typename _MatrixType >
template<typename Rhs , typename Dest >
void Eigen::SPQR< _MatrixType >::_solve ( const MatrixBase< Rhs > &  b,
MatrixBase< Dest > &  dest 
) const
inline

Definition at line 136 of file SuiteSparseQRSupport.h.

template<typename _MatrixType >
cholmod_common* Eigen::SPQR< _MatrixType >::cholmodCommon ( ) const
inline
Returns
a pointer to the SPQR workspace

Definition at line 195 of file SuiteSparseQRSupport.h.

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

Get the number of columns of the input matrix.

Definition at line 120 of file SuiteSparseQRSupport.h.

template<typename _MatrixType >
PermutationType Eigen::SPQR< _MatrixType >::colsPermutation ( ) const
inline

Get the permutation that was applied to columns of A.

Definition at line 171 of file SuiteSparseQRSupport.h.

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

Definition at line 93 of file SuiteSparseQRSupport.h.

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

Reports whether previous computation was successful.

Returns
Success if computation was succesful, NumericalIssue if the sparse QR can not be computed

Definition at line 203 of file SuiteSparseQRSupport.h.

template<typename _MatrixType >
SPQRMatrixQReturnType<SPQR> Eigen::SPQR< _MatrixType >::matrixQ ( void  ) const
inline

Get an expression of the matrix Q.

Definition at line 166 of file SuiteSparseQRSupport.h.

template<typename _MatrixType >
const MatrixType Eigen::SPQR< _MatrixType >::matrixR ( void  ) const
inline
Returns
the sparse triangular factor R. It is a sparse matrix

Definition at line 156 of file SuiteSparseQRSupport.h.

template<typename _MatrixType >
Index Eigen::SPQR< _MatrixType >::rank ( ) const
inline

Gets the rank of the matrix. It should be equal to matrixQR().cols if the matrix is full-rank

Definition at line 184 of file SuiteSparseQRSupport.h.

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

Get the number of rows of the input matrix and the Q matrix

Definition at line 115 of file SuiteSparseQRSupport.h.

template<typename _MatrixType >
void Eigen::SPQR< _MatrixType >::setPivotThreshold ( const RealScalar tol)
inline

Set the tolerance tol to treat columns with 2-norm < =tol as zero.

Definition at line 192 of file SuiteSparseQRSupport.h.

template<typename _MatrixType >
void Eigen::SPQR< _MatrixType >::setSPQROrdering ( int  ord)
inline

Set the fill-reducing ordering method to be used.

Definition at line 190 of file SuiteSparseQRSupport.h.

template<typename _MatrixType >
template<typename Rhs >
const internal::solve_retval<SPQR, Rhs> Eigen::SPQR< _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 127 of file SuiteSparseQRSupport.h.

Friends And Related Function Documentation

template<typename _MatrixType >
template<typename , typename >
friend struct SPQR_QProduct
friend

Definition at line 225 of file SuiteSparseQRSupport.h.

Member Data Documentation

template<typename _MatrixType >
int Eigen::SPQR< _MatrixType >::m_allow_tol
protected

Definition at line 215 of file SuiteSparseQRSupport.h.

template<typename _MatrixType >
bool Eigen::SPQR< _MatrixType >::m_analysisIsOk
protected

Definition at line 210 of file SuiteSparseQRSupport.h.

template<typename _MatrixType >
cholmod_common Eigen::SPQR< _MatrixType >::m_cc
mutableprotected

Definition at line 224 of file SuiteSparseQRSupport.h.

template<typename _MatrixType >
cholmod_sparse* Eigen::SPQR< _MatrixType >::m_cR
mutableprotected

Definition at line 217 of file SuiteSparseQRSupport.h.

template<typename _MatrixType >
Index* Eigen::SPQR< _MatrixType >::m_E
mutableprotected

Definition at line 219 of file SuiteSparseQRSupport.h.

template<typename _MatrixType >
bool Eigen::SPQR< _MatrixType >::m_factorizationIsOk
protected

Definition at line 211 of file SuiteSparseQRSupport.h.

template<typename _MatrixType >
cholmod_sparse* Eigen::SPQR< _MatrixType >::m_H
mutableprotected

Definition at line 220 of file SuiteSparseQRSupport.h.

template<typename _MatrixType >
Index* Eigen::SPQR< _MatrixType >::m_HPinv
mutableprotected

Definition at line 221 of file SuiteSparseQRSupport.h.

template<typename _MatrixType >
cholmod_dense* Eigen::SPQR< _MatrixType >::m_HTau
mutableprotected

Definition at line 222 of file SuiteSparseQRSupport.h.

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

Definition at line 213 of file SuiteSparseQRSupport.h.

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

Definition at line 209 of file SuiteSparseQRSupport.h.

template<typename _MatrixType >
bool Eigen::SPQR< _MatrixType >::m_isRUpToDate
mutableprotected

Definition at line 212 of file SuiteSparseQRSupport.h.

template<typename _MatrixType >
int Eigen::SPQR< _MatrixType >::m_ordering
protected

Definition at line 214 of file SuiteSparseQRSupport.h.

template<typename _MatrixType >
MatrixType Eigen::SPQR< _MatrixType >::m_R
mutableprotected

Definition at line 218 of file SuiteSparseQRSupport.h.

template<typename _MatrixType >
Index Eigen::SPQR< _MatrixType >::m_rank
mutableprotected

Definition at line 223 of file SuiteSparseQRSupport.h.

template<typename _MatrixType >
RealScalar Eigen::SPQR< _MatrixType >::m_tolerance
protected

Definition at line 216 of file SuiteSparseQRSupport.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:41