Interface QRPDecomposition<T extends Matrix>

All Superinterfaces:
DecompositionInterface<T>, QRDecomposition<T>
All Known Subinterfaces:
QRPDecomposition_F32<T>, QRPDecomposition_F64<T>
All Known Implementing Classes:
QRColPivDecompositionHouseholderColumn_DDRM, QRColPivDecompositionHouseholderColumn_FDRM

public interface QRPDecomposition<T extends Matrix> 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.

  • Method Details

    • getRank

      int getRank()
      Returns the rank as determined by the algorithm. This is dependent upon a fixed threshold and might not be appropriate for some applications.
      Returns:
      Matrix's rank
    • getColPivots

      int[] getColPivots()
      Ordering of each column after pivoting. The current column i was original at column pivot[i].
      Returns:
      Order of columns.
    • getColPivotMatrix

      T getColPivotMatrix(@Nullable T P)
      Creates the column pivot matrix.
      Parameters:
      P - Optional storage for pivot matrix. If null a new matrix will be created.
      Returns:
      The pivot matrix.