## gov.sandia.cognition.math.matrix.decomposition Interface SingularValueDecomposition

All Known Implementing Classes:
AbstractSingularValueDecomposition, SingularValueDecompositionMTJ

```@CodeReview(reviewer="Jonathan McClain",
date="2006-05-17",
changesNeeded=false,
@PublicationReference(author="Wikipedia",
title="Singular Value Decomposition",
type=WebPage,
year=2010,
url="http://en.wikipedia.org/wiki/Singular_value_decomposition")
public interface SingularValueDecomposition```

Interface that describes the operations of all SingularValueDecompositions

Since:
1.0
Author:
Kevin R. Dixon

Method Summary
` double` `conditionNumber()`
Returns the condition number of the underlying matrix, which is simply the ratio of the largest to smallest singular value
` int` `effectiveRank(double effectiveZero)`
Returns the effective rank of the underlying matrix by counting the number of singular values whose values are larger than effectiveZero
` Matrix` `getS()`
Gets the PSD diagonal matrix containing the sorted singular values
` Matrix` `getU()`
Gets the orthonormal matrix containing the left singular vectors of the underlying matrix
` Matrix` `getVtranspose()`
Gets the transpose of the orthonormal matrix containing the right singular vectors of the underlying matrix
` double` `norm2()`
Returns the associated 2-norm (spectral norm) of the underlying matrix, which is simply the largest singular value
` Matrix` `pseudoInverse()`
Computes the Least Squares pseudoinverse of the underlying matrix
` Matrix` `pseudoInverse(double effectiveZero)`
Computes the Least Squares pseudoinverse of the underlying matrix, while clipping the singular values at effectiveZero
` int` `rank()`
Returns the rank of the underlying matrix by calling this.effectiveRank with an effectiveZero = 0.0

Method Detail

### getU

`Matrix getU()`
Gets the orthonormal matrix containing the left singular vectors of the underlying matrix

Returns:
U

### getS

`Matrix getS()`
Gets the PSD diagonal matrix containing the sorted singular values

Returns:
S

### getVtranspose

`Matrix getVtranspose()`
Gets the transpose of the orthonormal matrix containing the right singular vectors of the underlying matrix

Returns:
Vtranspose

### norm2

`double norm2()`
Returns the associated 2-norm (spectral norm) of the underlying matrix, which is simply the largest singular value

Returns:
Largest singular value on the interval [0.0, inf)

### conditionNumber

`double conditionNumber()`
Returns the condition number of the underlying matrix, which is simply the ratio of the largest to smallest singular value

Returns:
Condition number on the interval [1.0, inf]

### rank

`int rank()`
Returns the rank of the underlying matrix by calling this.effectiveRank with an effectiveZero = 0.0

Returns:
rank of the underlying matrix

### effectiveRank

`int effectiveRank(double effectiveZero)`
Returns the effective rank of the underlying matrix by counting the number of singular values whose values are larger than effectiveZero

Parameters:
`effectiveZero` - threshold for considering a singular value to be zero
Returns:
effective rank of the underlying matrix

### pseudoInverse

`Matrix pseudoInverse()`
Computes the Least Squares pseudoinverse of the underlying matrix

Returns:
pseudoinverse of the underlying matrix: V * pinv(S) * U'

### pseudoInverse

`Matrix pseudoInverse(double effectiveZero)`
Computes the Least Squares pseudoinverse of the underlying matrix, while clipping the singular values at effectiveZero

Parameters:
`effectiveZero` - value below which to consider the singular values zero
Returns:
pseudoinverse of the underlying matrix: V * pinv(S,effectiveZero) * U'