LDLT< _MatrixType, _UpLo > Class Template Reference
Robust Cholesky decomposition of a matrix with pivoting.
More...
List of all members.
Detailed Description
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 |
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
Constructor & Destructor Documentation
LDLT |
( |
Index |
size |
) |
[inline] |
Default Constructor with memory preallocation.
Like the default constructor but with preallocation of the internal data according to the specified problem size.
- See also:
- LDLT()
Member Function Documentation
LDLT< MatrixType, _UpLo > & compute |
( |
const MatrixType & |
a |
) |
[inline] |
Compute / recompute the LDLT decomposition A = L D L^* = U^* D U of matrix
bool isNegative |
( |
void |
|
) |
const [inline] |
- Returns:
- true if the matrix is negative (semidefinite)
bool isPositive |
( |
void |
|
) |
const [inline] |
- Returns:
- true if the matrix is positive (semidefinite)
Traits::MatrixL matrixL |
( |
void |
|
) |
const [inline] |
- Returns:
- a view of the lower triangular matrix L
const MatrixType& matrixLDLT |
( |
|
) |
const [inline] |
- Returns:
- the internal LDLT decomposition matrix
TODO: document the storage layout
Traits::MatrixU matrixU |
( |
|
) |
const [inline] |
- Returns:
- a view of the upper triangular matrix U
MatrixType reconstructedMatrix |
( |
|
) |
const [inline] |
- Returns:
- the matrix represented by the decomposition, i.e., it returns the product: P^T L D L^* P. This function is provided for debug purpose.
const internal::solve_retval<LDLT, Rhs> solve |
( |
const MatrixBase< Rhs > & |
b |
) |
const [inline] |
- 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)
.
This method just tries to find as good a solution as possible. If you want to check whether a solution exists or if it is accurate, just call this function to get a result and then compute the error of this result, or use MatrixBase::isApprox() directly, for instance like this:
bool a_solution_exists = (A*result).isApprox(b, precision);
This method avoids dividing by zero, so that the non-existence of a solution doesn't by itself mean that you'll get inf
or nan
values.
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()
- Returns:
- the permutation matrix P as a transposition sequence.
Diagonal<const MatrixType> vectorD |
( |
void |
|
) |
const [inline] |
- Returns:
- the coefficients of the diagonal matrix D
The documentation for this class was generated from the following file: