enum { MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime
, MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
, UpLo = _UpLo
}
typedef _MatrixType MatrixType
typedef SolverBase < LDLT > Base
typedef Matrix < Scalar, RowsAtCompileTime, 1, 0, MaxRowsAtCompileTime, 1 > TmpMatrixType
typedef Transpositions < RowsAtCompileTime, MaxRowsAtCompileTime > TranspositionType
typedef PermutationMatrix < RowsAtCompileTime, MaxRowsAtCompileTime > PermutationType
typedef internal::LDLT_Traits < MatrixType, UpLo > Traits
enum
typedef EigenBase < LDLT < _MatrixType, _UpLo > > Base
typedef internal::traits < LDLT < _MatrixType, _UpLo > >::Scalar Scalar
typedef Scalar CoeffReturnType
typedef Transpose < const LDLT < _MatrixType, _UpLo > > ConstTransposeReturnType
typedef internal::conditional < NumTraits < Scalar >::IsComplex, CwiseUnaryOp < internal::scalar_conjugate_op < Scalar >, constConstTransposeReturnType >, constConstTransposeReturnType >::type AdjointReturnType
typedef Eigen::Index Index
The interface type of indices.
typedef internal::traits < Derived >::StorageKind StorageKind
LDLT ()
Default Constructor.
LDLT (Index size )
Default Constructor with memory preallocation.
template<typename InputType >
LDLT (const EigenBase < InputType > &matrix)
Constructor with decomposition.
template<typename InputType >
LDLT (EigenBase < InputType > &matrix)
Constructs a LDLT factorization from a given matrix.
void setZero ()
Clear any existing decomposition.
Traits::MatrixU matrixU () const
Traits::MatrixL matrixL () const
const TranspositionType & transpositionsP () const
Diagonal < const MatrixType > vectorD () const
bool isPositive () const
bool isNegative (void ) const
template<typename Derived >
bool solveInPlace (MatrixBase < Derived > &bAndX ) const
template<typename InputType >
LDLT & compute (const EigenBase < InputType > &matrix)
RealScalar rcond () const
template<typename Derived >
LDLT & rankUpdate (const MatrixBase < Derived > &w, const RealScalar &alpha=1)
const MatrixType & matrixLDLT () const
MatrixType reconstructedMatrix () const
const LDLT & adjoint () const
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index rows () const EIGEN_NOEXCEPT
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index cols () const EIGEN_NOEXCEPT
ComputationInfo info () const
Reports whether previous computation was successful.
template<typename RhsType , typename DstType >
void _solve_impl (const RhsType &rhs, DstType &dst ) const
template<bool Conjugate, typename RhsType , typename DstType >
void _solve_impl_transposed (const RhsType &rhs, DstType &dst ) const
template<typename InputType >
LDLT < MatrixType, _UpLo > & compute (const EigenBase < InputType > &a)
Compute / recompute the LDLT decomposition A = L D L^* = U^* D U of matrix .
template<typename Derived >
LDLT < MatrixType, _UpLo > & rankUpdate (const MatrixBase < Derived > &w, const typename LDLT < MatrixType, _UpLo >::RealScalar &sigma)
Update the LDLT decomposition: given A = L D L^T, efficiently compute the decomposition of A + sigma w w^T.
SolverBase ()
Default constructor.
const Solve < LDLT < _MatrixType, _UpLo >, Rhs > solve (const MatrixBase < Rhs > &b) const
const ConstTransposeReturnType transpose () const
const AdjointReturnType adjoint () const
EIGEN_DEVICE_FUNC LDLT < _MatrixType, _UpLo > & derived ()
EIGEN_DEVICE_FUNC const LDLT < _MatrixType, _UpLo > & derived () const
EIGEN_DEVICE_FUNC Derived & derived ()
EIGEN_DEVICE_FUNC const Derived & derived () const
EIGEN_DEVICE_FUNC Derived & const_cast_derived () const
EIGEN_DEVICE_FUNC const Derived & const_derived () const
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index rows () const EIGEN_NOEXCEPT
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index cols () const EIGEN_NOEXCEPT
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index size () const EIGEN_NOEXCEPT
template<typename Dest >
EIGEN_DEVICE_FUNC void evalTo (Dest &dst ) const
template<typename Dest >
EIGEN_DEVICE_FUNC void addTo (Dest &dst ) const
template<typename Dest >
EIGEN_DEVICE_FUNC void subTo (Dest &dst ) const
template<typename Dest >
EIGEN_DEVICE_FUNC void applyThisOnTheRight (Dest &dst ) const
template<typename Dest >
EIGEN_DEVICE_FUNC void applyThisOnTheLeft (Dest &dst ) const
template<
typename _MatrixType, int _UpLo>
class Eigen::LDLT< _MatrixType, _UpLo >
Robust Cholesky decomposition of a matrix with pivoting.
Template Parameters
_MatrixType the type of the matrix of which to compute the LDL^T Cholesky decomposition
_UpLo the triangular part that will be used for the decompositon: Lower (default) or Upper. The other triangular part won't be read.
Perform a robust Cholesky decomposition of a positive semidefinite or negative semidefinite matrix such that , where P is a permutation matrix, L is lower triangular with a unit diagonal and D is a diagonal matrix.
The decomposition uses pivoting to ensure stability, so that D will have zeros in the bottom right rank(A) - n submatrix. Avoiding the square root on D also stabilizes the computation.
Remember that Cholesky decompositions are not rank-revealing. Also, do not use a Cholesky decomposition to determine whether a system of equations has a solution.
This class supports the inplace decomposition mechanism.
See also MatrixBase::ldlt() , SelfAdjointView::ldlt() , class LLT