no.uib.cipr.matrix
Class SVD

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

public class SVD
extends java.lang.Object

Computes singular value decompositions


Constructor Summary
SVD(int m, int n)
          Creates an empty SVD which will compute all singular values and vectors
SVD(int m, int n, boolean vectors)
          Creates an empty SVD
 
Method Summary
 SVD factor(DenseMatrix A)
          Computes an SVD
static SVD factorize(Matrix A)
          Convenience method for computing a full SVD
 double[] getS()
          Returns the singular values (stored in descending order)
 DenseMatrix getU()
          Returns the left singular vectors, column-wise.
 DenseMatrix getVt()
          Returns the right singular vectors, row-wise.
 boolean hasSingularVectors()
          True if singular vectors are stored
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

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 Detail

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)