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

All Methods
Modifier and Type Method and Description
`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'