![]() |
|
A base class for direct sparse Cholesky factorizations. More...
#include <SimplicialCholesky.h>
Classes | |
struct | keep_diag |
Public Types | |
enum | { UpLo = internal::traits<Derived>::UpLo } |
enum | { ColsAtCompileTime = MatrixType::ColsAtCompileTime , MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime } |
typedef internal::traits< Derived >::MatrixType | MatrixType |
typedef internal::traits< Derived >::OrderingType | OrderingType |
typedef MatrixType::Scalar | Scalar |
typedef MatrixType::RealScalar | RealScalar |
typedef internal::traits< Derived >::DiagonalScalar | DiagonalScalar |
typedef MatrixType::StorageIndex | StorageIndex |
typedef SparseMatrix< Scalar, ColMajor, StorageIndex > | CholMatrixType |
typedef CholMatrixType const * | ConstCholMatrixPtr |
typedef Matrix< Scalar, Dynamic, 1 > | VectorType |
typedef Matrix< StorageIndex, Dynamic, 1 > | VectorI |
Public Member Functions | |
SimplicialCholeskyBase () | |
SimplicialCholeskyBase (const MatrixType &matrix) | |
~SimplicialCholeskyBase () | |
Derived & | derived () |
const Derived & | derived () const |
Index | cols () const |
Index | rows () const |
ComputationInfo | info () const |
Reports whether previous computation was successful. More... | |
const PermutationMatrix< Dynamic, Dynamic, StorageIndex > & | permutationP () const |
const PermutationMatrix< Dynamic, Dynamic, StorageIndex > & | permutationPinv () const |
Derived & | setShift (const DiagonalScalar &offset, const DiagonalScalar &scale=1) |
template<typename Stream > | |
void | dumpMemory (Stream &s) |
template<typename Rhs , typename Dest > | |
void | _solve_impl (const MatrixBase< Rhs > &b, MatrixBase< Dest > &dest) const |
template<typename Rhs , typename Dest > | |
void | _solve_impl (const SparseMatrixBase< Rhs > &b, SparseMatrixBase< Dest > &dest) const |
Derived & | derived () |
const Derived & | derived () const |
![]() | |
SparseSolverBase () | |
SparseSolverBase (SparseSolverBase &&other) | |
~SparseSolverBase () | |
Derived & | derived () |
const Derived & | derived () const |
template<typename Rhs > | |
const Solve< Derived, Rhs > | solve (const MatrixBase< Rhs > &b) const |
template<typename Rhs > | |
const Solve< Derived, Rhs > | solve (const SparseMatrixBase< Rhs > &b) const |
template<typename Rhs , typename Dest > | |
void | _solve_impl (const SparseMatrixBase< Rhs > &b, SparseMatrixBase< Dest > &dest) const |
Protected Member Functions | |
template<bool DoLDLT, bool NonHermitian> | |
void | compute (const MatrixType &matrix) |
template<bool DoLDLT, bool NonHermitian> | |
void | factorize (const MatrixType &a) |
template<bool DoLDLT, bool NonHermitian> | |
void | factorize_preordered (const CholMatrixType &a) |
template<bool DoLDLT, bool NonHermitian> | |
void | analyzePattern (const MatrixType &a) |
void | analyzePattern_preordered (const CholMatrixType &a, bool doLDLT) |
template<bool NonHermitian> | |
void | ordering (const MatrixType &a, ConstCholMatrixPtr &pmat, CholMatrixType &ap) |
DiagonalScalar | getDiag (Scalar x) |
Scalar | getSymm (Scalar x) |
Protected Attributes | |
ComputationInfo | m_info |
bool | m_factorizationIsOk |
bool | m_analysisIsOk |
CholMatrixType | m_matrix |
VectorType | m_diag |
VectorI | m_parent |
VectorI | m_workSpace |
PermutationMatrix< Dynamic, Dynamic, StorageIndex > | m_P |
PermutationMatrix< Dynamic, Dynamic, StorageIndex > | m_Pinv |
DiagonalScalar | m_shiftOffset |
DiagonalScalar | m_shiftScale |
![]() | |
bool | m_isInitialized |
Private Types | |
typedef SparseSolverBase< Derived > | Base |
Private Attributes | |
bool | m_isInitialized |
A base class for direct sparse Cholesky factorizations.
This is a base class for LL^T and LDL^T Cholesky factorizations of sparse matrices that are selfadjoint and positive definite. These factorizations allow 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.
Derived | the type of the derived class, that is the actual factorization type. |
|
private |
typedef SparseMatrix<Scalar, ColMajor, StorageIndex> Eigen::SimplicialCholeskyBase< Derived >::CholMatrixType |
typedef CholMatrixType const* Eigen::SimplicialCholeskyBase< Derived >::ConstCholMatrixPtr |
typedef internal::traits<Derived>::DiagonalScalar Eigen::SimplicialCholeskyBase< Derived >::DiagonalScalar |
typedef internal::traits<Derived>::MatrixType Eigen::SimplicialCholeskyBase< Derived >::MatrixType |
typedef internal::traits<Derived>::OrderingType Eigen::SimplicialCholeskyBase< Derived >::OrderingType |
typedef MatrixType::RealScalar Eigen::SimplicialCholeskyBase< Derived >::RealScalar |
typedef MatrixType::Scalar Eigen::SimplicialCholeskyBase< Derived >::Scalar |
typedef MatrixType::StorageIndex Eigen::SimplicialCholeskyBase< Derived >::StorageIndex |
typedef Matrix<StorageIndex, Dynamic, 1> Eigen::SimplicialCholeskyBase< Derived >::VectorI |
typedef Matrix<Scalar, Dynamic, 1> Eigen::SimplicialCholeskyBase< Derived >::VectorType |
anonymous enum |
Enumerator | |
---|---|
ColsAtCompileTime | |
MaxColsAtCompileTime |
|
inline |
Default constructor
|
inlineexplicit |
References Eigen::SimplicialCholeskyBase< Derived >::derived(), and matrix().
|
inline |
|
inline |
References b, Eigen::SimplicialCholeskyBase< Derived >::derived(), eigen_assert, Eigen::SimplicialCholeskyBase< Derived >::m_diag, Eigen::SimplicialCholeskyBase< Derived >::m_factorizationIsOk, Eigen::SimplicialCholeskyBase< Derived >::m_info, Eigen::SimplicialCholeskyBase< Derived >::m_matrix, Eigen::SimplicialCholeskyBase< Derived >::m_P, Eigen::SimplicialCholeskyBase< Derived >::m_Pinv, Eigen::SparseMatrix< Scalar_, Options_, StorageIndex_ >::nonZeros(), Eigen::SparseMatrix< Scalar_, Options_, StorageIndex_ >::rows(), Eigen::PermutationBase< Derived >::size(), and Eigen::Success.
|
inline |
References b, Eigen::SimplicialCholeskyBase< Derived >::derived(), and Eigen::internal::solve_sparse_through_dense_panels().
|
inlineprotected |
References a, Eigen::SimplicialCholeskyBase< Derived >::analyzePattern_preordered(), eigen_assert, size, and tmp.
|
protected |
References ap, eigen_assert, run(), size, and Eigen::Success.
Referenced by Eigen::SimplicialCholeskyBase< Derived >::analyzePattern(), and Eigen::SimplicialCholeskyBase< Derived >::compute().
|
inline |
References Eigen::SparseMatrix< Scalar_, Options_, StorageIndex_ >::cols(), and Eigen::SimplicialCholeskyBase< Derived >::m_matrix.
Referenced by gdb.printers._MatrixEntryIterator::__next__(), gdb.printers.EigenMatrixPrinter::children(), gdb.printers.EigenSparseMatrixPrinter::children(), gdb.printers.EigenMatrixPrinter::to_string(), and gdb.printers.EigenSparseMatrixPrinter::to_string().
|
inlineprotected |
Computes the sparse Cholesky decomposition of matrix
References Eigen::SimplicialCholeskyBase< Derived >::analyzePattern_preordered(), eigen_assert, matrix(), size, and tmp.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
References Eigen::SparseMatrix< Scalar_, Options_, StorageIndex_ >::cols(), int(), Eigen::SimplicialCholeskyBase< Derived >::m_diag, Eigen::SimplicialCholeskyBase< Derived >::m_matrix, Eigen::SimplicialCholeskyBase< Derived >::m_P, Eigen::SimplicialCholeskyBase< Derived >::m_parent, Eigen::SimplicialCholeskyBase< Derived >::m_Pinv, Eigen::SimplicialCholeskyBase< Derived >::m_workSpace, Eigen::SparseMatrix< Scalar_, Options_, StorageIndex_ >::nonZeros(), s, and Eigen::PermutationBase< Derived >::size().
|
inlineprotected |
References a, eigen_assert, Eigen::PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, StorageIndex_ >::indices(), Eigen::SimplicialCholeskyBase< Derived >::m_P, Eigen::internal::simplicial_cholesky_grab_input< CholMatrixType, InputMatrixType >::run(), size, Eigen::PermutationBase< Derived >::size(), tmp, Eigen::SimplicialCholeskyBase< Derived >::UpLo, and Eigen::Upper.
|
protected |
References ap, ei_declare_aligned_stack_constructed_variable, eigen_assert, i, k, Global_Parameters::Lx, Eigen::NumericalIssue, p, size, sqrt(), Eigen::Success, and y.
|
inlineprotected |
References plotDoE::x.
|
inlineprotected |
References plotDoE::x.
|
inline |
Reports whether previous computation was successful.
Success
if computation was successful, NumericalIssue
if the matrix.appears to be negative. References eigen_assert, Eigen::SimplicialCholeskyBase< Derived >::m_info, and Eigen::SimplicialCholeskyBase< Derived >::m_isInitialized.
|
protected |
References a, ap, eigen_assert, Eigen::Lower, Eigen::internal::simplicial_cholesky_grab_input< CholMatrixType, InputMatrixType >::run(), size, and Eigen::value.
|
inline |
References Eigen::SimplicialCholeskyBase< Derived >::m_P.
|
inline |
References Eigen::SimplicialCholeskyBase< Derived >::m_Pinv.
|
inline |
References Eigen::SimplicialCholeskyBase< Derived >::m_matrix, and Eigen::SparseMatrix< Scalar_, Options_, StorageIndex_ >::rows().
Referenced by gdb.printers._MatrixEntryIterator::__next__(), gdb.printers.EigenMatrixPrinter::children(), gdb.printers.EigenSparseMatrixPrinter::children(), gdb.printers.EigenMatrixPrinter::to_string(), and gdb.printers.EigenSparseMatrixPrinter::to_string().
|
inline |
Sets the shift parameters that will be used to adjust the diagonal coefficients during the numerical factorization.
During the numerical factorization, the diagonal coefficients are transformed by the following linear model:
d_ii
= offset + scale * d_ii
The default is the identity transformation with offset=0, and scale=1.
*this
. References Eigen::SimplicialCholeskyBase< Derived >::derived(), Eigen::SimplicialCholeskyBase< Derived >::m_shiftOffset, and Eigen::SimplicialCholeskyBase< Derived >::m_shiftScale.
|
protected |
|
protected |
Referenced by Eigen::SimplicialCholeskyBase< Derived >::_solve_impl(), Eigen::SimplicialCholesky< MatrixType_, UpLo_, Ordering_ >::_solve_impl(), Eigen::SimplicialLDLT< MatrixType_, UpLo_, Ordering_ >::determinant(), Eigen::SimplicialNonHermitianLDLT< MatrixType_, UpLo_, Ordering_ >::determinant(), Eigen::SimplicialCholesky< MatrixType_, UpLo_, Ordering_ >::determinant(), Eigen::SimplicialCholeskyBase< Derived >::dumpMemory(), Eigen::SimplicialLDLT< MatrixType_, UpLo_, Ordering_ >::vectorD(), Eigen::SimplicialNonHermitianLDLT< MatrixType_, UpLo_, Ordering_ >::vectorD(), and Eigen::SimplicialCholesky< MatrixType_, UpLo_, Ordering_ >::vectorD().
|
protected |
Referenced by Eigen::SimplicialCholeskyBase< Derived >::_solve_impl(), Eigen::SimplicialCholesky< MatrixType_, UpLo_, Ordering_ >::_solve_impl(), Eigen::SimplicialLLT< MatrixType_, UpLo_, Ordering_ >::matrixL(), Eigen::SimplicialLDLT< MatrixType_, UpLo_, Ordering_ >::matrixL(), Eigen::SimplicialNonHermitianLLT< MatrixType_, UpLo_, Ordering_ >::matrixL(), Eigen::SimplicialNonHermitianLDLT< MatrixType_, UpLo_, Ordering_ >::matrixL(), Eigen::SimplicialLLT< MatrixType_, UpLo_, Ordering_ >::matrixU(), Eigen::SimplicialLDLT< MatrixType_, UpLo_, Ordering_ >::matrixU(), Eigen::SimplicialNonHermitianLLT< MatrixType_, UpLo_, Ordering_ >::matrixU(), Eigen::SimplicialNonHermitianLDLT< MatrixType_, UpLo_, Ordering_ >::matrixU(), Eigen::SimplicialCholesky< MatrixType_, UpLo_, Ordering_ >::rawMatrix(), Eigen::SimplicialLDLT< MatrixType_, UpLo_, Ordering_ >::vectorD(), Eigen::SimplicialNonHermitianLDLT< MatrixType_, UpLo_, Ordering_ >::vectorD(), and Eigen::SimplicialCholesky< MatrixType_, UpLo_, Ordering_ >::vectorD().
|
mutableprotected |
|
mutableprivate |
Referenced by Eigen::SimplicialCholeskyBase< Derived >::info().
|
protected |
Referenced by Eigen::SimplicialCholeskyBase< Derived >::_solve_impl(), Eigen::SimplicialCholesky< MatrixType_, UpLo_, Ordering_ >::_solve_impl(), Eigen::SimplicialCholeskyBase< Derived >::cols(), Eigen::SimplicialLLT< MatrixType_, UpLo_, Ordering_ >::determinant(), Eigen::SimplicialNonHermitianLLT< MatrixType_, UpLo_, Ordering_ >::determinant(), Eigen::SimplicialCholesky< MatrixType_, UpLo_, Ordering_ >::determinant(), Eigen::SimplicialCholeskyBase< Derived >::dumpMemory(), Eigen::SimplicialLLT< MatrixType_, UpLo_, Ordering_ >::matrixL(), Eigen::SimplicialLDLT< MatrixType_, UpLo_, Ordering_ >::matrixL(), Eigen::SimplicialNonHermitianLLT< MatrixType_, UpLo_, Ordering_ >::matrixL(), Eigen::SimplicialNonHermitianLDLT< MatrixType_, UpLo_, Ordering_ >::matrixL(), Eigen::SimplicialLLT< MatrixType_, UpLo_, Ordering_ >::matrixU(), Eigen::SimplicialLDLT< MatrixType_, UpLo_, Ordering_ >::matrixU(), Eigen::SimplicialNonHermitianLLT< MatrixType_, UpLo_, Ordering_ >::matrixU(), Eigen::SimplicialNonHermitianLDLT< MatrixType_, UpLo_, Ordering_ >::matrixU(), Eigen::SimplicialCholesky< MatrixType_, UpLo_, Ordering_ >::rawMatrix(), and Eigen::SimplicialCholeskyBase< Derived >::rows().
|
protected |
Referenced by Eigen::SimplicialCholeskyBase< Derived >::_solve_impl(), Eigen::SimplicialCholesky< MatrixType_, UpLo_, Ordering_ >::_solve_impl(), Eigen::SimplicialCholeskyBase< Derived >::dumpMemory(), Eigen::SimplicialCholeskyBase< Derived >::factorize(), and Eigen::SimplicialCholeskyBase< Derived >::permutationP().
|
protected |
Referenced by Eigen::SimplicialCholeskyBase< Derived >::dumpMemory().
|
protected |
|
protected |
Referenced by Eigen::SimplicialCholeskyBase< Derived >::setShift().
|
protected |
Referenced by Eigen::SimplicialCholeskyBase< Derived >::setShift().
|
protected |
Referenced by Eigen::SimplicialCholeskyBase< Derived >::dumpMemory().