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 Detail

      • getB

        T getB​(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​(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​(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.