Interface QrpSparseDecomposition<T extends Matrix>

All Superinterfaces:
DecompositionInterface<T>, QRDecomposition<T>

public interface QrpSparseDecomposition<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:
P_r*A*P_c=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(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.
    • getRowPivots

      int[] getRowPivots()
      Ordering of each row after pivoting. The current row i was original at row pivot[i].
      Returns:
      Order of rows.
    • getRowPivotMatrix

      T getRowPivotMatrix(T P)
      Creates the row pivot matrix.
      Parameters:
      P - Optional storage for pivot matrix. If null a new matrix will be created.
      Returns:
      The pivot matrix.
    • isColumnPivot

      boolean isColumnPivot()
    • isRowPivot

      boolean isRowPivot()