Shapeworks Studio  2.1
Shape analysis software suite
List of all members | Public Types | Public Member Functions
Eigen::SimplicialLLT< _MatrixType, _UpLo > Class Template Reference

A direct sparse LLT Cholesky factorizations. More...

#include <SimplicialCholesky.h>

+ Inheritance diagram for Eigen::SimplicialLLT< _MatrixType, _UpLo >:
+ Collaboration diagram for Eigen::SimplicialLLT< _MatrixType, _UpLo >:

Public Types

enum  { UpLo = _UpLo }
 
typedef _MatrixType MatrixType
 
typedef SimplicialCholeskyBase< SimplicialLLTBase
 
typedef MatrixType::Scalar Scalar
 
typedef MatrixType::RealScalar RealScalar
 
typedef MatrixType::Index Index
 
typedef SparseMatrix< Scalar, ColMajor, Index > CholMatrixType
 
typedef Matrix< Scalar, Dynamic, 1 > VectorType
 
typedef internal::traits< SimplicialLLTTraits
 
typedef Traits::MatrixL MatrixL
 
typedef Traits::MatrixU MatrixU
 
- Public Types inherited from Eigen::SimplicialCholeskyBase< SimplicialLLT< _MatrixType, _UpLo > >
enum  
 
typedef internal::traits< SimplicialLLT< _MatrixType, _UpLo > >::MatrixType MatrixType
 
typedef MatrixType::Scalar Scalar
 
typedef MatrixType::RealScalar RealScalar
 
typedef MatrixType::Index Index
 
typedef SparseMatrix< Scalar, ColMajor, Index > CholMatrixType
 
typedef Matrix< Scalar, Dynamic, 1 > VectorType
 

Public Member Functions

 SimplicialLLT ()
 
 SimplicialLLT (const MatrixType &matrix)
 
const MatrixL matrixL () const
 
const MatrixU matrixU () const
 
SimplicialLLTcompute (const MatrixType &matrix)
 
void analyzePattern (const MatrixType &a)
 
void factorize (const MatrixType &a)
 
Scalar determinant () const
 
- Public Member Functions inherited from Eigen::SimplicialCholeskyBase< SimplicialLLT< _MatrixType, _UpLo > >
 SimplicialCholeskyBase ()
 
 SimplicialCholeskyBase (const MatrixType &matrix)
 
SimplicialLLT< _MatrixType, _UpLo > & derived ()
 
const SimplicialLLT< _MatrixType, _UpLo > & derived () const
 
Index cols () const
 
Index rows () const
 
ComputationInfo info () const
 Reports whether previous computation was successful. More...
 
const internal::solve_retval< SimplicialCholeskyBase, Rhs > solve (const MatrixBase< Rhs > &b) const
 
const internal::sparse_solve_retval< SimplicialCholeskyBase, Rhs > solve (const SparseMatrixBase< Rhs > &b) const
 
const PermutationMatrix< Dynamic, Dynamic, Index > & permutationP () const
 
const PermutationMatrix< Dynamic, Dynamic, Index > & permutationPinv () const
 
SimplicialLLT< _MatrixType, _UpLo > & setShift (const RealScalar &offset, const RealScalar &scale=1)
 
void dumpMemory (Stream &s)
 
void _solve (const MatrixBase< Rhs > &b, MatrixBase< Dest > &dest) const
 

Additional Inherited Members

- Protected Member Functions inherited from Eigen::SimplicialCholeskyBase< SimplicialLLT< _MatrixType, _UpLo > >
void compute (const MatrixType &matrix)
 
void factorize (const MatrixType &a)
 
void factorize_preordered (const CholMatrixType &a)
 
void analyzePattern (const MatrixType &a, bool doLDLT)
 
void analyzePattern_preordered (const CholMatrixType &a, bool doLDLT)
 
void ordering (const MatrixType &a, CholMatrixType &ap)
 
- Protected Attributes inherited from Eigen::SimplicialCholeskyBase< SimplicialLLT< _MatrixType, _UpLo > >
ComputationInfo m_info
 
bool m_isInitialized
 
bool m_factorizationIsOk
 
bool m_analysisIsOk
 
CholMatrixType m_matrix
 
VectorType m_diag
 
VectorXi m_parent
 
VectorXi m_nonZerosPerCol
 
PermutationMatrix< Dynamic, Dynamic, Index > m_P
 
PermutationMatrix< Dynamic, Dynamic, Index > m_Pinv
 
RealScalar m_shiftOffset
 
RealScalar m_shiftScale
 

Detailed Description

template<typename _MatrixType, int _UpLo>
class Eigen::SimplicialLLT< _MatrixType, _UpLo >

A direct sparse LLT Cholesky factorizations.

This class provides a LL^T Cholesky factorizations of sparse matrices that are selfadjoint and positive definite. The factorization allows for solving A.X = B where X and B can be either dense or sparse.

In order to reduce the fill-in, a symmetric permutation P is applied prior to the factorization such that the factorized matrix is P A P^-1.

Template Parameters
_MatrixTypethe type of the sparse matrix A, it must be a SparseMatrix<>
_UpLothe triangular part that will be used for the computations. It can be Lower or Upper. Default is Lower.
See also
class SimplicialLDLT

Definition at line 243 of file SimplicialCholesky.h.

Constructor & Destructor Documentation

template<typename _MatrixType , int _UpLo>
Eigen::SimplicialLLT< _MatrixType, _UpLo >::SimplicialLLT ( )
inline

Default constructor

Definition at line 317 of file SimplicialCholesky.h.

317 : Base() {}
template<typename _MatrixType , int _UpLo>
Eigen::SimplicialLLT< _MatrixType, _UpLo >::SimplicialLLT ( const MatrixType &  matrix)
inline

Constructs and performs the LLT factorization of matrix

Definition at line 319 of file SimplicialCholesky.h.

320  : Base(matrix) {}
Definition: math3d.h:219

Member Function Documentation

template<typename _MatrixType , int _UpLo>
void Eigen::SimplicialLLT< _MatrixType, _UpLo >::analyzePattern ( const MatrixType &  a)
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()

Definition at line 347 of file SimplicialCholesky.h.

348  {
349  Base::analyzePattern(a, false);
350  }
template<typename _MatrixType , int _UpLo>
SimplicialLLT& Eigen::SimplicialLLT< _MatrixType, _UpLo >::compute ( const MatrixType &  matrix)
inline

Computes the sparse Cholesky decomposition of matrix

Definition at line 335 of file SimplicialCholesky.h.

336  {
337  Base::template compute<false>(matrix);
338  return *this;
339  }
Definition: math3d.h:219
template<typename _MatrixType , int _UpLo>
Scalar Eigen::SimplicialLLT< _MatrixType, _UpLo >::determinant ( ) const
inline
Returns
the determinant of the underlying matrix from the current factorization

Definition at line 364 of file SimplicialCholesky.h.

365  {
366  Scalar detL = Base::m_matrix.diagonal().prod();
367  return numext::abs2(detL);
368  }
template<typename _MatrixType , int _UpLo>
void Eigen::SimplicialLLT< _MatrixType, _UpLo >::factorize ( const MatrixType &  a)
inline

Performs a numeric decomposition of matrix

The given matrix must has the same sparcity than the matrix on which the symbolic decomposition has been performed.

See also
analyzePattern()

Definition at line 358 of file SimplicialCholesky.h.

359  {
360  Base::template factorize<false>(a);
361  }
template<typename _MatrixType , int _UpLo>
const MatrixL Eigen::SimplicialLLT< _MatrixType, _UpLo >::matrixL ( ) const
inline
Returns
an expression of the factor L

Definition at line 323 of file SimplicialCholesky.h.

323  {
324  eigen_assert(Base::m_factorizationIsOk && "Simplicial LLT not factorized");
325  return Traits::getL(Base::m_matrix);
326  }
template<typename _MatrixType , int _UpLo>
const MatrixU Eigen::SimplicialLLT< _MatrixType, _UpLo >::matrixU ( ) const
inline
Returns
an expression of the factor U (= L^*)

Definition at line 329 of file SimplicialCholesky.h.

329  {
330  eigen_assert(Base::m_factorizationIsOk && "Simplicial LLT not factorized");
331  return Traits::getU(Base::m_matrix);
332  }

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