Class SvdImplicitQrDecompose_UltimateS

java.lang.Object
org.ejml.dense.row.decomposition.svd.SvdImplicitQrDecompose_UltimateS
All Implemented Interfaces:
org.ejml.interfaces.decomposition.DecompositionInterface<org.ejml.data.DMatrixRMaj>, org.ejml.interfaces.decomposition.SingularValueDecomposition<org.ejml.data.DMatrixRMaj>, org.ejml.interfaces.decomposition.SingularValueDecomposition_F64<org.ejml.data.DMatrixRMaj>

public class SvdImplicitQrDecompose_UltimateS
extends java.lang.Object
implements org.ejml.interfaces.decomposition.SingularValueDecomposition_F64<org.ejml.data.DMatrixRMaj>

Similar to SvdImplicitQrDecompose_DDRM but it employs the ultimate shift strategy. Ultimate shift involves first computing singular values then uses those to quickly compute the U and W matrices. For EVD this strategy seems to work very well, but for this problem it needs to have little benefit and makes the code more complex.

NOTE: This code is much faster for 2x2 matrices since it computes the eigenvalues in one step.
  • Constructor Summary

    Constructors 
    Constructor Description
    SvdImplicitQrDecompose_UltimateS​(boolean compact, boolean computeU, boolean computeV)  
  • Method Summary

    Modifier and Type Method Description
    boolean decompose​(org.ejml.data.DMatrixRMaj orig)  
    double[] getSingularValues()  
    org.ejml.data.DMatrixRMaj getU​(@Nullable org.ejml.data.DMatrixRMaj U, boolean transpose)  
    org.ejml.data.DMatrixRMaj getV​(@Nullable org.ejml.data.DMatrixRMaj V, boolean transpose)  
    org.ejml.data.DMatrixRMaj getW​(@Nullable org.ejml.data.DMatrixRMaj W)  
    boolean inputModified()  
    boolean isCompact()  
    int numberOfSingularValues()  
    int numCols()  
    int numRows()  

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

  • Method Details

    • getSingularValues

      public double[] getSingularValues()
      Specified by:
      getSingularValues in interface org.ejml.interfaces.decomposition.SingularValueDecomposition_F64<org.ejml.data.DMatrixRMaj>
    • numberOfSingularValues

      public int numberOfSingularValues()
      Specified by:
      numberOfSingularValues in interface org.ejml.interfaces.decomposition.SingularValueDecomposition<org.ejml.data.DMatrixRMaj>
    • isCompact

      public boolean isCompact()
      Specified by:
      isCompact in interface org.ejml.interfaces.decomposition.SingularValueDecomposition<org.ejml.data.DMatrixRMaj>
    • getU

      public org.ejml.data.DMatrixRMaj getU​(@Nullable @Nullable org.ejml.data.DMatrixRMaj U, boolean transpose)
      Specified by:
      getU in interface org.ejml.interfaces.decomposition.SingularValueDecomposition<org.ejml.data.DMatrixRMaj>
    • getV

      public org.ejml.data.DMatrixRMaj getV​(@Nullable @Nullable org.ejml.data.DMatrixRMaj V, boolean transpose)
      Specified by:
      getV in interface org.ejml.interfaces.decomposition.SingularValueDecomposition<org.ejml.data.DMatrixRMaj>
    • getW

      public org.ejml.data.DMatrixRMaj getW​(@Nullable @Nullable org.ejml.data.DMatrixRMaj W)
      Specified by:
      getW in interface org.ejml.interfaces.decomposition.SingularValueDecomposition<org.ejml.data.DMatrixRMaj>
    • decompose

      public boolean decompose​(org.ejml.data.DMatrixRMaj orig)
      Specified by:
      decompose in interface org.ejml.interfaces.decomposition.DecompositionInterface<org.ejml.data.DMatrixRMaj>
    • inputModified

      public boolean inputModified()
      Specified by:
      inputModified in interface org.ejml.interfaces.decomposition.DecompositionInterface<org.ejml.data.DMatrixRMaj>
    • numRows

      public int numRows()
      Specified by:
      numRows in interface org.ejml.interfaces.decomposition.SingularValueDecomposition<org.ejml.data.DMatrixRMaj>
    • numCols

      public int numCols()
      Specified by:
      numCols in interface org.ejml.interfaces.decomposition.SingularValueDecomposition<org.ejml.data.DMatrixRMaj>