Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
SimplicialLDLT< _MatrixType, _UpLo > Class Template Reference

A direct sparse LDLT Cholesky factorizations without square root. More...

#include <SimplicialCholesky.h>

+ Inheritance diagram for SimplicialLDLT< _MatrixType, _UpLo >:

List of all members.

Public Types

enum  
enum  { UpLo }
typedef SimplicialCholeskyBase
< SimplicialLDLT
Base
typedef SparseMatrix< Scalar,
ColMajor, Index
CholMatrixType
typedef MatrixType::Index Index
typedef Traits::MatrixL MatrixL
typedef _MatrixType MatrixType
typedef Traits::MatrixU MatrixU
typedef MatrixType::RealScalar RealScalar
typedef MatrixType::Scalar Scalar
typedef internal::traits
< SimplicialLDLT
Traits
typedef Matrix< Scalar,
Dynamic, 1 > 
VectorType

Public Member Functions

void analyzePattern (const MatrixType &a)
Index cols () const
SimplicialLDLTcompute (const MatrixType &matrix)
SimplicialLDLT< _MatrixType,
_UpLo > & 
derived ()
const SimplicialLDLT
< _MatrixType, _UpLo > & 
derived () const
Scalar determinant () const
void factorize (const MatrixType &a)
ComputationInfo info () const
 Reports whether previous computation was successful.
const MatrixL matrixL () const
const MatrixU matrixU () const
const PermutationMatrix
< Dynamic, Dynamic, Index > & 
permutationP () const
const PermutationMatrix
< Dynamic, Dynamic, Index > & 
permutationPinv () const
Index rows () const
SimplicialLDLT< _MatrixType,
_UpLo > & 
setShift (const RealScalar &offset, const RealScalar &scale=1)
 SimplicialLDLT ()
 SimplicialLDLT (const MatrixType &matrix)
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 VectorType vectorD () const

Protected Member Functions

void analyzePattern (const MatrixType &a, bool doLDLT)
void analyzePattern_preordered (const CholMatrixType &a, bool doLDLT)
void factorize_preordered (const CholMatrixType &a)
void ordering (const MatrixType &a, CholMatrixType &ap)

Protected Attributes

bool m_analysisIsOk
VectorType m_diag
bool m_factorizationIsOk
ComputationInfo m_info
bool m_isInitialized
CholMatrixType m_matrix
VectorXi m_nonZerosPerCol
PermutationMatrix< Dynamic,
Dynamic, Index
m_P
VectorXi m_parent
PermutationMatrix< Dynamic,
Dynamic, Index
m_Pinv
RealScalar m_shiftOffset
RealScalar m_shiftScale

Detailed Description

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

A direct sparse LDLT Cholesky factorizations without square root.

This class provides a LDL^T Cholesky factorizations without square root 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.

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 SimplicialLLT

Member Typedef Documentation

typedef MatrixType::Index Index
typedef Traits::MatrixL MatrixL
typedef _MatrixType MatrixType
typedef Traits::MatrixU MatrixU
typedef MatrixType::RealScalar RealScalar
typedef MatrixType::Scalar Scalar
typedef internal::traits<SimplicialLDLT> Traits

Member Enumeration Documentation

anonymous enum [inherited]
anonymous enum
Enumerator:
UpLo 

Constructor & Destructor Documentation

SimplicialLDLT ( ) [inline]

Default constructor

SimplicialLDLT ( const MatrixType matrix) [inline]

Constructs and performs the LLT factorization of matrix


Member Function Documentation

void analyzePattern ( const MatrixType a,
bool  doLDLT 
) [inline, protected, inherited]
void 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()

References SimplicialCholeskyBase< Derived >::analyzePattern().

void analyzePattern_preordered ( const CholMatrixType a,
bool  doLDLT 
) [protected, inherited]
Index cols ( void  ) const [inline, inherited]
SimplicialLDLT& compute ( const MatrixType matrix) [inline]

Computes the sparse Cholesky decomposition of matrix

Reimplemented from SimplicialCholeskyBase< SimplicialLDLT< _MatrixType, _UpLo > >.

SimplicialLDLT< _MatrixType, _UpLo > & derived ( ) [inline, inherited]
const SimplicialLDLT< _MatrixType, _UpLo > & derived ( ) const [inline, inherited]
Scalar determinant ( ) const [inline]
Returns:
the determinant of the underlying matrix from the current factorization

References SimplicialCholeskyBase< Derived >::m_diag.

void 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()

Reimplemented from SimplicialCholeskyBase< SimplicialLDLT< _MatrixType, _UpLo > >.

void factorize_preordered ( const CholMatrixType a) [protected, inherited]
ComputationInfo info ( ) const [inline, inherited]

Reports whether previous computation was successful.

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

References SimplicialCholeskyBase< Derived >::m_info, and SimplicialCholeskyBase< Derived >::m_isInitialized.

const MatrixL matrixL ( ) const [inline]
const MatrixU matrixU ( ) const [inline]
Returns:
an expression of the factor U (= L^*)

References SimplicialCholeskyBase< Derived >::m_factorizationIsOk, and SimplicialCholeskyBase< Derived >::m_matrix.

void ordering ( const MatrixType a,
CholMatrixType ap 
) [protected, inherited]
const PermutationMatrix<Dynamic,Dynamic,Index>& permutationP ( ) const [inline, inherited]
Returns:
the permutation P
See also:
permutationPinv()

References SimplicialCholeskyBase< Derived >::m_P.

const PermutationMatrix<Dynamic,Dynamic,Index>& permutationPinv ( ) const [inline, inherited]
Returns:
the inverse P^-1 of the permutation P
See also:
permutationP()

References SimplicialCholeskyBase< Derived >::m_Pinv.

Index rows ( void  ) const [inline, inherited]
SimplicialLDLT< _MatrixType, _UpLo > & setShift ( const RealScalar offset,
const RealScalar scale = 1 
) [inline, inherited]

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.

References SimplicialCholeskyBase< Derived >::derived(), SimplicialCholeskyBase< Derived >::m_shiftOffset, and SimplicialCholeskyBase< Derived >::m_shiftScale.

const internal::solve_retval<SimplicialCholeskyBase, Rhs> solve ( const MatrixBase< Rhs > &  b) const [inline, inherited]
Returns:
the solution x of $ A x = b $ using the current decomposition of A.
See also:
compute()

References SimplicialCholeskyBase< Derived >::m_isInitialized, and SimplicialCholeskyBase< Derived >::rows().

const internal::sparse_solve_retval<SimplicialCholeskyBase, Rhs> solve ( const SparseMatrixBase< Rhs > &  b) const [inline, inherited]
Returns:
the solution x of $ A x = b $ using the current decomposition of A.
See also:
compute()

References EigenBase< Derived >::derived(), SimplicialCholeskyBase< Derived >::m_isInitialized, SimplicialCholeskyBase< Derived >::rows(), and SparseMatrixBase< Derived >::rows().

const VectorType vectorD ( ) const [inline]
Returns:
a vector expression of the diagonal D

References SimplicialCholeskyBase< Derived >::m_diag, and SimplicialCholeskyBase< Derived >::m_factorizationIsOk.


Member Data Documentation

bool m_analysisIsOk [protected, inherited]
VectorType m_diag [protected, inherited]
bool m_factorizationIsOk [protected, inherited]
ComputationInfo m_info [mutable, protected, inherited]
bool m_isInitialized [protected, inherited]
CholMatrixType m_matrix [protected, inherited]
VectorXi m_nonZerosPerCol [protected, inherited]
PermutationMatrix<Dynamic,Dynamic,Index> m_P [protected, inherited]
VectorXi m_parent [protected, inherited]
PermutationMatrix<Dynamic,Dynamic,Index> m_Pinv [protected, inherited]
RealScalar m_shiftOffset [protected, inherited]
RealScalar m_shiftScale [protected, inherited]

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