MOAB
4.9.3pre
|
A direct sparse LLT Cholesky factorizations. More...
#include <SimplicialCholesky.h>
Public Types | |
enum | { UpLo = _UpLo } |
typedef _MatrixType | MatrixType |
typedef SimplicialCholeskyBase < SimplicialLLT > | Base |
typedef MatrixType::Scalar | Scalar |
typedef MatrixType::RealScalar | RealScalar |
typedef MatrixType::StorageIndex | StorageIndex |
typedef SparseMatrix< Scalar, ColMajor, Index > | CholMatrixType |
typedef Matrix< Scalar, Dynamic, 1 > | VectorType |
typedef internal::traits < SimplicialLLT > | Traits |
typedef Traits::MatrixL | MatrixL |
typedef Traits::MatrixU | MatrixU |
Public Member Functions | |
SimplicialLLT () | |
SimplicialLLT (const MatrixType &matrix) | |
const MatrixL | matrixL () const |
const MatrixU | matrixU () const |
SimplicialLLT & | compute (const MatrixType &matrix) |
void | analyzePattern (const MatrixType &a) |
void | factorize (const MatrixType &a) |
Scalar | determinant () const |
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.
_MatrixType | the type of the sparse matrix A, it must be a SparseMatrix<> |
_UpLo | the triangular part that will be used for the computations. It can be Lower or Upper. Default is Lower. |
_Ordering | The ordering method to use, either AMDOrdering<> or NaturalOrdering<>. Default is AMDOrdering<> |
Definition at line 330 of file SimplicialCholesky.h.
typedef SimplicialCholeskyBase<SimplicialLLT> Eigen::SimplicialLLT< _MatrixType, _UpLo, _Ordering >::Base |
Reimplemented from Eigen::SimplicialCholeskyBase< SimplicialLLT< _MatrixType, _UpLo, _Ordering > >.
Definition at line 335 of file SimplicialCholesky.h.
typedef SparseMatrix<Scalar,ColMajor,Index> Eigen::SimplicialLLT< _MatrixType, _UpLo, _Ordering >::CholMatrixType |
Reimplemented from Eigen::SimplicialCholeskyBase< SimplicialLLT< _MatrixType, _UpLo, _Ordering > >.
Definition at line 339 of file SimplicialCholesky.h.
typedef Traits::MatrixL Eigen::SimplicialLLT< _MatrixType, _UpLo, _Ordering >::MatrixL |
Definition at line 342 of file SimplicialCholesky.h.
typedef _MatrixType Eigen::SimplicialLLT< _MatrixType, _UpLo, _Ordering >::MatrixType |
Reimplemented from Eigen::SimplicialCholeskyBase< SimplicialLLT< _MatrixType, _UpLo, _Ordering > >.
Definition at line 333 of file SimplicialCholesky.h.
typedef Traits::MatrixU Eigen::SimplicialLLT< _MatrixType, _UpLo, _Ordering >::MatrixU |
Definition at line 343 of file SimplicialCholesky.h.
typedef MatrixType::RealScalar Eigen::SimplicialLLT< _MatrixType, _UpLo, _Ordering >::RealScalar |
Reimplemented from Eigen::SimplicialCholeskyBase< SimplicialLLT< _MatrixType, _UpLo, _Ordering > >.
Definition at line 337 of file SimplicialCholesky.h.
typedef MatrixType::Scalar Eigen::SimplicialLLT< _MatrixType, _UpLo, _Ordering >::Scalar |
Reimplemented from Eigen::SimplicialCholeskyBase< SimplicialLLT< _MatrixType, _UpLo, _Ordering > >.
Definition at line 336 of file SimplicialCholesky.h.
typedef MatrixType::StorageIndex Eigen::SimplicialLLT< _MatrixType, _UpLo, _Ordering >::StorageIndex |
Reimplemented from Eigen::SimplicialCholeskyBase< SimplicialLLT< _MatrixType, _UpLo, _Ordering > >.
Definition at line 338 of file SimplicialCholesky.h.
typedef internal::traits<SimplicialLLT> Eigen::SimplicialLLT< _MatrixType, _UpLo, _Ordering >::Traits |
Definition at line 341 of file SimplicialCholesky.h.
typedef Matrix<Scalar,Dynamic,1> Eigen::SimplicialLLT< _MatrixType, _UpLo, _Ordering >::VectorType |
Reimplemented from Eigen::SimplicialCholeskyBase< SimplicialLLT< _MatrixType, _UpLo, _Ordering > >.
Definition at line 340 of file SimplicialCholesky.h.
anonymous enum |
Eigen::SimplicialLLT< _MatrixType, _UpLo, _Ordering >::SimplicialLLT | ( | ) | [inline] |
Eigen::SimplicialLLT< _MatrixType, _UpLo, _Ordering >::SimplicialLLT | ( | const MatrixType & | matrix | ) | [inline, explicit] |
Constructs and performs the LLT factorization of matrix
Definition at line 348 of file SimplicialCholesky.h.
: Base(matrix) {}
void Eigen::SimplicialLLT< _MatrixType, _UpLo, _Ordering >::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.
Definition at line 376 of file SimplicialCholesky.h.
{ Base::analyzePattern(a, false); }
SimplicialLLT& Eigen::SimplicialLLT< _MatrixType, _UpLo, _Ordering >::compute | ( | const MatrixType & | matrix | ) | [inline] |
Computes the sparse Cholesky decomposition of matrix
Reimplemented from Eigen::SimplicialCholeskyBase< SimplicialLLT< _MatrixType, _UpLo, _Ordering > >.
Definition at line 364 of file SimplicialCholesky.h.
{ Base::template compute<false>(matrix); return *this; }
Scalar Eigen::SimplicialLLT< _MatrixType, _UpLo, _Ordering >::determinant | ( | ) | const [inline] |
Definition at line 393 of file SimplicialCholesky.h.
{ Scalar detL = Base::m_matrix.diagonal().prod(); return numext::abs2(detL); }
void Eigen::SimplicialLLT< _MatrixType, _UpLo, _Ordering >::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.
Reimplemented from Eigen::SimplicialCholeskyBase< SimplicialLLT< _MatrixType, _UpLo, _Ordering > >.
Definition at line 387 of file SimplicialCholesky.h.
{ Base::template factorize<false>(a); }
const MatrixL Eigen::SimplicialLLT< _MatrixType, _UpLo, _Ordering >::matrixL | ( | ) | const [inline] |
Definition at line 352 of file SimplicialCholesky.h.
{ eigen_assert(Base::m_factorizationIsOk && "Simplicial LLT not factorized"); return Traits::getL(Base::m_matrix); }
const MatrixU Eigen::SimplicialLLT< _MatrixType, _UpLo, _Ordering >::matrixU | ( | ) | const [inline] |
Definition at line 358 of file SimplicialCholesky.h.
{ eigen_assert(Base::m_factorizationIsOk && "Simplicial LLT not factorized"); return Traits::getU(Base::m_matrix); }