Class SVD

java.lang.Object
no.uib.cipr.matrix.SVD

public class SVD extends Object
Computes singular value decompositions
  • Constructor Details

    • SVD

      public SVD(int m, int n)
      Creates an empty SVD which will compute all singular values and vectors
      Parameters:
      m - Number of rows
      n - Number of columns
    • SVD

      public SVD(int m, int n, boolean vectors)
      Creates an empty SVD
      Parameters:
      m - Number of rows
      n - Number of columns
      vectors - True to compute the singular vectors, false for just the singular values
  • Method Details

    • factorize

      public static SVD factorize(Matrix A) throws NotConvergedException
      Convenience method for computing a full SVD
      Parameters:
      A - Matrix to decompose, not modified
      Returns:
      Newly allocated factorization
      Throws:
      NotConvergedException
    • factor

      public SVD factor(DenseMatrix A) throws NotConvergedException
      Computes an SVD
      Parameters:
      A - Matrix to decompose. Size must conform, and it will be overwritten on return. Pass a copy to avoid this
      Returns:
      The current decomposition
      Throws:
      NotConvergedException
    • hasSingularVectors

      public boolean hasSingularVectors()
      True if singular vectors are stored
    • getU

      public DenseMatrix getU()
      Returns the left singular vectors, column-wise. Not available for partial decompositions
      Returns:
      Matrix of size m*m
    • getVt

      public DenseMatrix getVt()
      Returns the right singular vectors, row-wise. Not available for partial decompositions
      Returns:
      Matrix of size n*n
    • getS

      public double[] getS()
      Returns the singular values (stored in descending order)
      Returns:
      Array of size min(m,n)