|
enum | {
RowsAtCompileTime = MatrixType::RowsAtCompileTime,
ColsAtCompileTime = MatrixType::ColsAtCompileTime,
Options = MatrixType::Options & ~RowMajorBit,
MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
UpLo = _UpLo
} |
|
typedef _MatrixType | MatrixType |
|
typedef MatrixType::Scalar | Scalar |
|
typedef NumTraits< typename MatrixType::Scalar >::Real | RealScalar |
|
typedef MatrixType::Index | Index |
|
typedef Matrix< Scalar, RowsAtCompileTime, 1, Options, MaxRowsAtCompileTime, 1 > | TmpMatrixType |
|
typedef Transpositions< RowsAtCompileTime, MaxRowsAtCompileTime > | TranspositionType |
|
typedef PermutationMatrix< RowsAtCompileTime, MaxRowsAtCompileTime > | PermutationType |
|
typedef internal::LDLT_Traits< MatrixType, UpLo > | Traits |
|
template<typename _MatrixType, int _UpLo>
class Eigen::LDLT< _MatrixType, _UpLo >
Robust Cholesky decomposition of a matrix with pivoting.
- 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 L 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.
- See also
- MatrixBase::ldlt(), class LLT
Definition at line 45 of file LDLT.h.
template<typename _MatrixType, int _UpLo>
template<typename Rhs >
- Returns
- a solution x of using the current decomposition of A.
This function also supports in-place solves using the syntax x = decompositionObject.solve(x)
.
More precisely, this method solves using the decomposition by solving the systems , , , and in succession. If the matrix is singular, then will also be singular (all the other matrices are invertible). In that case, the least-square solution of is computed. This does not mean that this function computes the least-square solution of is is singular.
- See also
- MatrixBase::ldlt()
Definition at line 176 of file LDLT.h.
178 eigen_assert(m_isInitialized &&
"LDLT is not initialized.");
179 eigen_assert(m_matrix.rows()==b.rows()
180 &&
"LDLT::solve(): invalid number of rows of the right hand side matrix b");
181 return internal::solve_retval<LDLT, Rhs>(*
this, b.derived());