Interface BidiagonalDecomposition<T extends Matrix>

All Superinterfaces:
DecompositionInterface<T>
All Known Subinterfaces:
BidiagonalDecomposition_F32<T>, BidiagonalDecomposition_F64<T>

public interface BidiagonalDecomposition<T extends Matrix>
extends DecompositionInterface<T>

Computes a matrix decomposition such that:

A = U*B*VT

where A is m by n, U is orthogonal and m by m, B is an m by n bidiagonal matrix, V is orthogonal and n by n. This is used as a first step in computing the SVD of a matrix for the QR algorithm approach.

A bidiagonal matrix has zeros in every element except for the two diagonals.

b_ij = 0 if i > j or i < j-1

  • Method Summary

    Modifier and Type Method Description
    T getB​(T B, boolean compact)
    Returns the bidiagonal matrix.
    T getU​(T U, boolean transpose, boolean compact)
    Returns the orthogonal U matrix.
    T getV​(T V, boolean transpose, boolean compact)
    Returns the orthogonal V matrix.

    Methods inherited from interface org.ejml.interfaces.decomposition.DecompositionInterface

    decompose, inputModified
  • Method Details

    • getB

      T getB​(@Nullable T B, boolean compact)
      Returns the bidiagonal matrix.
      Parameters:
      B - If not null the results are stored here, if null a new matrix is created.
      Returns:
      The bidiagonal matrix.
    • getU

      T getU​(@Nullable T U, boolean transpose, boolean compact)
      Returns the orthogonal U matrix.
      Parameters:
      U - If not null then the results will be stored here. Otherwise a new matrix will be created.
      Returns:
      The extracted Q matrix.
    • getV

      T getV​(@Nullable T V, boolean transpose, boolean compact)
      Returns the orthogonal V matrix.
      Parameters:
      V - If not null then the results will be stored here. Otherwise a new matrix will be created.
      Returns:
      The extracted Q matrix.