public interface QRPDecomposition<T extends Matrix64F> extends QRDecomposition<T>
Similar to QRDecomposition but it can handle the rank deficient case by
performing column pivots during the decomposition. The final decomposition has the
following structure:
A*P=Q*R
where A is the original matrix, P is a pivot matrix, Q is an orthogonal matrix, and R is
upper triangular.
WARNING: You should always call setSingularThreshold(double) before DecompositionInterface.decompose(org.ejml.data.Matrix64F).
| Modifier and Type | Method and Description |
|---|---|
DenseMatrix64F |
getPivotMatrix(DenseMatrix64F P)
Creates the pivot matrix.
|
int[] |
getPivots()
Ordering of each column after pivoting.
|
int |
getRank()
Returns the rank as determined by the algorithm.
|
void |
setSingularThreshold(double threshold)
Specifies the threshold used to flag a column as being singular.
|
getQ, getRdecompose, inputModifiedvoid setSingularThreshold(double threshold)
Specifies the threshold used to flag a column as being singular. The optimal threshold (if one exists)
varies by the matrix being processed. A reasonable value would be the maximum absolute value of the
matrix's elements multiplied by EPS:
decomposition.setSingularThreshold(CommonOps.elementMaxAbs(A)*UtilEjml.EPS)
threshold - Singular threshold.int getRank()
int[] getPivots()
DenseMatrix64F getPivotMatrix(DenseMatrix64F P)
P - Optional storage for pivot matrix. If null a new matrix will be created.Copyright © 2013. All Rights Reserved.