WPILibC++ 2023.4.3
Eigen::SimplicialCholeskyBase< Derived > Class Template Reference

A base class for direct sparse Cholesky factorizations. More...

#include </home/runner/work/allwpilib/allwpilib/wpimath/src/main/native/thirdparty/eigen/include/Eigen/src/SparseCholesky/SimplicialCholesky.h>

Inheritance diagram for Eigen::SimplicialCholeskyBase< Derived >:
Eigen::SparseSolverBase< Derived > Eigen::internal::noncopyable

Classes

struct  keep_diag
 keeps off-diagonal entries; drops diagonal entries More...
 

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, StorageIndexCholMatrixType
 
typedef CholMatrixType const * ConstCholMatrixPtr
 
typedef Matrix< Scalar, Dynamic, 1 > VectorType
 
typedef Matrix< StorageIndex, Dynamic, 1 > VectorI
 

Public Member Functions

 SimplicialCholeskyBase ()
 Default constructor. More...
 
 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 RealScalar &offset, const RealScalar &scale=1)
 Sets the shift parameters that will be used to adjust the diagonal coefficients during the numerical factorization. More...
 
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
 
- Public Member Functions inherited from Eigen::SparseSolverBase< Derived >
 SparseSolverBase ()
 Default constructor. More...
 
 ~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>
void compute (const MatrixType &matrix)
 Computes the sparse Cholesky decomposition of matrix. More...
 
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)
 

Protected Attributes

ComputationInfo m_info
 
bool m_factorizationIsOk
 
bool m_analysisIsOk
 
CholMatrixType m_matrix
 
VectorType m_diag
 
VectorI m_parent
 
VectorI m_nonZerosPerCol
 
PermutationMatrix< Dynamic, Dynamic, StorageIndexm_P
 
PermutationMatrix< Dynamic, Dynamic, StorageIndexm_Pinv
 
RealScalar m_shiftOffset
 
RealScalar m_shiftScale
 
- Protected Attributes inherited from Eigen::SparseSolverBase< Derived >
bool m_isInitialized
 

Detailed Description

template<typename Derived>
class Eigen::SimplicialCholeskyBase< Derived >

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.

Template Parameters
Derivedthe type of the derived class, that is the actual factorization type.

Member Typedef Documentation

◆ CholMatrixType

template<typename Derived >
typedef SparseMatrix<Scalar,ColMajor,StorageIndex> Eigen::SimplicialCholeskyBase< Derived >::CholMatrixType

◆ ConstCholMatrixPtr

template<typename Derived >
typedef CholMatrixType const* Eigen::SimplicialCholeskyBase< Derived >::ConstCholMatrixPtr

◆ MatrixType

template<typename Derived >
typedef internal::traits<Derived>::MatrixType Eigen::SimplicialCholeskyBase< Derived >::MatrixType

◆ OrderingType

template<typename Derived >
typedef internal::traits<Derived>::OrderingType Eigen::SimplicialCholeskyBase< Derived >::OrderingType

◆ RealScalar

template<typename Derived >
typedef MatrixType::RealScalar Eigen::SimplicialCholeskyBase< Derived >::RealScalar

◆ Scalar

template<typename Derived >
typedef MatrixType::Scalar Eigen::SimplicialCholeskyBase< Derived >::Scalar

◆ StorageIndex

template<typename Derived >
typedef MatrixType::StorageIndex Eigen::SimplicialCholeskyBase< Derived >::StorageIndex

◆ VectorI

template<typename Derived >
typedef Matrix<StorageIndex,Dynamic,1> Eigen::SimplicialCholeskyBase< Derived >::VectorI

◆ VectorType

template<typename Derived >
typedef Matrix<Scalar,Dynamic,1> Eigen::SimplicialCholeskyBase< Derived >::VectorType

Member Enumeration Documentation

◆ anonymous enum

template<typename Derived >
anonymous enum
Enumerator
UpLo 

◆ anonymous enum

template<typename Derived >
anonymous enum
Enumerator
ColsAtCompileTime 
MaxColsAtCompileTime 

Constructor & Destructor Documentation

◆ SimplicialCholeskyBase() [1/2]

template<typename Derived >
Eigen::SimplicialCholeskyBase< Derived >::SimplicialCholeskyBase ( )
inline

Default constructor.

◆ SimplicialCholeskyBase() [2/2]

template<typename Derived >
Eigen::SimplicialCholeskyBase< Derived >::SimplicialCholeskyBase ( const MatrixType matrix)
inlineexplicit

◆ ~SimplicialCholeskyBase()

template<typename Derived >
Eigen::SimplicialCholeskyBase< Derived >::~SimplicialCholeskyBase ( )
inline

Member Function Documentation

◆ _solve_impl() [1/2]

template<typename Derived >
template<typename Rhs , typename Dest >
void Eigen::SimplicialCholeskyBase< Derived >::_solve_impl ( const MatrixBase< Rhs > &  b,
MatrixBase< Dest > &  dest 
) const
inline

◆ _solve_impl() [2/2]

template<typename Derived >
template<typename Rhs , typename Dest >
void Eigen::SimplicialCholeskyBase< Derived >::_solve_impl ( const SparseMatrixBase< Rhs > &  b,
SparseMatrixBase< Dest > &  dest 
) const
inline

◆ analyzePattern()

template<typename Derived >
void Eigen::SimplicialCholeskyBase< Derived >::analyzePattern ( const MatrixType a,
bool  doLDLT 
)
inlineprotected

◆ analyzePattern_preordered()

template<typename Derived >
void Eigen::SimplicialCholeskyBase< Derived >::analyzePattern_preordered ( const CholMatrixType a,
bool  doLDLT 
)
protected

◆ cols()

template<typename Derived >
Index Eigen::SimplicialCholeskyBase< Derived >::cols ( void  ) const
inline

◆ compute()

template<typename Derived >
template<bool DoLDLT>
void Eigen::SimplicialCholeskyBase< Derived >::compute ( const MatrixType matrix)
inlineprotected

Computes the sparse Cholesky decomposition of matrix.

◆ derived() [1/4]

template<typename Derived >
Derived & Eigen::SparseSolverBase< Derived >::derived ( )
inline

◆ derived() [2/4]

template<typename Derived >
Derived & Eigen::SimplicialCholeskyBase< Derived >::derived ( )
inline

◆ derived() [3/4]

template<typename Derived >
const Derived & Eigen::SparseSolverBase< Derived >::derived ( ) const
inline

◆ derived() [4/4]

template<typename Derived >
const Derived & Eigen::SimplicialCholeskyBase< Derived >::derived ( ) const
inline

◆ dumpMemory()

template<typename Derived >
template<typename Stream >
void Eigen::SimplicialCholeskyBase< Derived >::dumpMemory ( Stream &  s)
inline

◆ factorize()

template<typename Derived >
template<bool DoLDLT>
void Eigen::SimplicialCholeskyBase< Derived >::factorize ( const MatrixType a)
inlineprotected

◆ factorize_preordered()

template<typename Derived >
template<bool DoLDLT>
void Eigen::SimplicialCholeskyBase< Derived >::factorize_preordered ( const CholMatrixType a)
protected

◆ info()

template<typename Derived >
ComputationInfo Eigen::SimplicialCholeskyBase< Derived >::info ( ) const
inline

Reports whether previous computation was successful.

Returns
Success if computation was successful, NumericalIssue if the matrix.appears to be negative.

◆ ordering()

template<typename Derived >
void Eigen::SimplicialCholeskyBase< Derived >::ordering ( const MatrixType a,
ConstCholMatrixPtr pmat,
CholMatrixType ap 
)
protected

◆ permutationP()

template<typename Derived >
const PermutationMatrix< Dynamic, Dynamic, StorageIndex > & Eigen::SimplicialCholeskyBase< Derived >::permutationP ( ) const
inline
Returns
the permutation P
See also
permutationPinv()

◆ permutationPinv()

template<typename Derived >
const PermutationMatrix< Dynamic, Dynamic, StorageIndex > & Eigen::SimplicialCholeskyBase< Derived >::permutationPinv ( ) const
inline
Returns
the inverse P^-1 of the permutation P
See also
permutationP()

◆ rows()

template<typename Derived >
Index Eigen::SimplicialCholeskyBase< Derived >::rows ( void  ) const
inline

◆ setShift()

template<typename Derived >
Derived & Eigen::SimplicialCholeskyBase< Derived >::setShift ( const RealScalar offset,
const RealScalar scale = 1 
)
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.

Returns
a reference to *this.

Member Data Documentation

◆ m_analysisIsOk

template<typename Derived >
bool Eigen::SimplicialCholeskyBase< Derived >::m_analysisIsOk
protected

◆ m_diag

template<typename Derived >
VectorType Eigen::SimplicialCholeskyBase< Derived >::m_diag
protected

◆ m_factorizationIsOk

template<typename Derived >
bool Eigen::SimplicialCholeskyBase< Derived >::m_factorizationIsOk
protected

◆ m_info

template<typename Derived >
ComputationInfo Eigen::SimplicialCholeskyBase< Derived >::m_info
mutableprotected

◆ m_matrix

template<typename Derived >
CholMatrixType Eigen::SimplicialCholeskyBase< Derived >::m_matrix
protected

◆ m_nonZerosPerCol

template<typename Derived >
VectorI Eigen::SimplicialCholeskyBase< Derived >::m_nonZerosPerCol
protected

◆ m_P

template<typename Derived >
PermutationMatrix<Dynamic,Dynamic,StorageIndex> Eigen::SimplicialCholeskyBase< Derived >::m_P
protected

◆ m_parent

template<typename Derived >
VectorI Eigen::SimplicialCholeskyBase< Derived >::m_parent
protected

◆ m_Pinv

template<typename Derived >
PermutationMatrix<Dynamic,Dynamic,StorageIndex> Eigen::SimplicialCholeskyBase< Derived >::m_Pinv
protected

◆ m_shiftOffset

template<typename Derived >
RealScalar Eigen::SimplicialCholeskyBase< Derived >::m_shiftOffset
protected

◆ m_shiftScale

template<typename Derived >
RealScalar Eigen::SimplicialCholeskyBase< Derived >::m_shiftScale
protected

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