![]() |
Prusa Slicer 2.6.0
|
A base class for direct sparse Cholesky factorizations. More...
#include <src/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h>
Inheritance diagram for Eigen::SimplicialCholeskyBase< Derived >:
Collaboration diagram for Eigen::SimplicialCholeskyBase< Derived >: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 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 |
Protected Member Functions | |
| template<bool DoLDLT> | |
| void | compute (const MatrixType &matrix) |
| template<bool DoLDLT> | |
| void | factorize (const MatrixType &a) |
| template<bool DoLDLT> | |
| 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, ConstCholMatrixPtr &pmat, CholMatrixType &ap) |
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>::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 | |
|---|---|
| UpLo | |
| anonymous enum |
| Enumerator | |
|---|---|
| ColsAtCompileTime | |
| MaxColsAtCompileTime | |
|
inline |
Default constructor
|
inlineexplicit |
References Eigen::SimplicialCholeskyBase< Derived >::derived().
Here is the call graph for this function:
|
inline |
|
inline |
References 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.
Here is the call graph for this function:
|
inline |
References Eigen::SimplicialCholeskyBase< Derived >::derived(), and Eigen::internal::solve_sparse_through_dense_panels().
Here is the call graph for this function:
|
inlineprotected |
References Eigen::SimplicialCholeskyBase< Derived >::analyzePattern_preordered(), eigen_assert, and ordering.
Referenced by Eigen::SimplicialLLT< _MatrixType, _UpLo, _Ordering >::analyzePattern(), Eigen::SimplicialLDLT< _MatrixType, _UpLo, _Ordering >::analyzePattern(), and Eigen::SimplicialCholesky< _MatrixType, _UpLo, _Ordering >::analyzePattern().
Here is the call graph for this function:
Here is the caller graph for this function:
|
protected |
References ei_declare_aligned_stack_constructed_variable, Eigen::SparseMatrix< _Scalar, _Options, _StorageIndex >::rows(), and Eigen::Success.
Referenced by Eigen::SimplicialCholeskyBase< Derived >::analyzePattern(), and Eigen::SimplicialCholeskyBase< Derived >::compute().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
References Eigen::SparseMatrix< _Scalar, _Options, _StorageIndex >::cols(), and Eigen::SimplicialCholeskyBase< Derived >::m_matrix.
Here is the call graph for this function:
|
inlineprotected |
Computes the sparse Cholesky decomposition of matrix
References Eigen::SimplicialCholeskyBase< Derived >::analyzePattern_preordered(), eigen_assert, and ordering.
Here is the call graph for this function:
|
inline |
|
inline |
Referenced by Eigen::SimplicialCholeskyBase< Derived >::SimplicialCholeskyBase(), Eigen::SimplicialCholeskyBase< Derived >::_solve_impl(), Eigen::SimplicialCholeskyBase< Derived >::_solve_impl(), and Eigen::SimplicialCholeskyBase< Derived >::setShift().
Here is the caller graph for this function:
|
inline |
|
inline |
|
inline |
References Eigen::SparseMatrix< _Scalar, _Options, _StorageIndex >::cols(), Eigen::SimplicialCholeskyBase< Derived >::m_diag, Eigen::SimplicialCholeskyBase< Derived >::m_matrix, Eigen::SimplicialCholeskyBase< Derived >::m_nonZerosPerCol, Eigen::SimplicialCholeskyBase< Derived >::m_P, Eigen::SimplicialCholeskyBase< Derived >::m_parent, Eigen::SimplicialCholeskyBase< Derived >::m_Pinv, Eigen::SparseMatrix< _Scalar, _Options, _StorageIndex >::nonZeros(), and Eigen::PermutationBase< Derived >::size().
Here is the call graph for this function:
|
inlineprotected |
References eigen_assert, Eigen::SimplicialCholeskyBase< Derived >::m_P, Eigen::internal::simplicial_cholesky_grab_input< CholMatrixType, InputMatrixType >::run(), Eigen::PermutationBase< Derived >::size(), Eigen::SimplicialCholeskyBase< Derived >::UpLo, and Eigen::Upper.
Here is the call graph for this function:
|
protected |
References Eigen::SparseMatrix< _Scalar, _Options, _StorageIndex >::cols(), ei_declare_aligned_stack_constructed_variable, eigen_assert, Eigen::NumericalIssue, Eigen::SparseMatrix< _Scalar, _Options, _StorageIndex >::rows(), sqrt(), and Eigen::Success.
Here is the call graph for this function:
|
inline |
Reports whether previous computation was successful.
Success if computation was succesful, NumericalIssue if the matrix.appears to be negative. References eigen_assert, Eigen::SimplicialCholeskyBase< Derived >::m_info, and Eigen::SimplicialCholeskyBase< Derived >::m_isInitialized.
Referenced by igl::embree::bone_heat(), igl::Frame_field_deformer::compute_optimal_positions(), igl::eigs(), and igl::Frame_field_deformer::precompute_opt().
Here is the caller graph for this function:
|
protected |
References eigen_assert, Eigen::Lower, ordering, Eigen::SparseMatrix< _Scalar, _Options, _StorageIndex >::resize(), and Eigen::internal::simplicial_cholesky_grab_input< CholMatrixType, InputMatrixType >::run().
Here is the call graph for this function:
|
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().
Here is the call graph for this function:
|
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, Eigen::SimplicialCholeskyBase< Derived >::m_shiftScale, and scale().
Here is the call graph for this function:
|
inlineinherited |
References Eigen::SparseSolverBase< Derived >::derived(), eigen_assert, and Eigen::SparseSolverBase< Derived >::m_isInitialized.
Referenced by igl::embree::bone_heat(), igl::Frame_field_deformer::compute_optimal_positions(), igl::eigs(), igl::copyleft::comiso::FrameInterpolator::interpolateSymmetric(), igl::slim::solve_weighted_arap(), and igl::copyleft::comiso::NRosyField::solveNoRoundings().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineinherited |
|
protected |
|
protected |
Referenced by Eigen::SimplicialCholeskyBase< Derived >::_solve_impl(), Eigen::SimplicialCholesky< _MatrixType, _UpLo, _Ordering >::_solve_impl(), Eigen::SimplicialLDLT< _MatrixType, _UpLo, _Ordering >::determinant(), Eigen::SimplicialCholesky< _MatrixType, _UpLo, _Ordering >::determinant(), Eigen::SimplicialCholeskyBase< Derived >::dumpMemory(), Eigen::SimplicialLDLT< _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::SimplicialLLT< _MatrixType, _UpLo, _Ordering >::matrixU(), Eigen::SimplicialLDLT< _MatrixType, _UpLo, _Ordering >::matrixU(), Eigen::SimplicialCholesky< _MatrixType, _UpLo, _Ordering >::rawMatrix(), Eigen::SimplicialLDLT< _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::SimplicialCholesky< _MatrixType, _UpLo, _Ordering >::determinant(), Eigen::SimplicialCholeskyBase< Derived >::dumpMemory(), Eigen::SimplicialLLT< _MatrixType, _UpLo, _Ordering >::matrixL(), Eigen::SimplicialLDLT< _MatrixType, _UpLo, _Ordering >::matrixL(), Eigen::SimplicialLLT< _MatrixType, _UpLo, _Ordering >::matrixU(), Eigen::SimplicialLDLT< _MatrixType, _UpLo, _Ordering >::matrixU(), Eigen::SimplicialCholesky< _MatrixType, _UpLo, _Ordering >::rawMatrix(), and Eigen::SimplicialCholeskyBase< Derived >::rows().
|
protected |
Referenced by Eigen::SimplicialCholeskyBase< Derived >::dumpMemory().
|
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().