This is an abstract class for computing the singular value decomposition (SVD) of a matrix, which is defined as:
The dimension of U,W,V depends if it is a compact SVD or not. If not compact then U is m by m, W is m by n, V is n by n. If compact then let s be the number of singular values, U is m by s, W is s by s, and V is n by s.
Accessor functions for decomposed matrices can return an internally constructed matrix if null is passed in for the optional storage parameter. The exact behavior is implementation specific. If an internally maintained matrix is returned then on the next call to decompose the matrix will be modified. The advantage of this approach is reduced memory overhead.
To create a new instance of SingularValueDecomposition see {@link DecompositionFactory#svd(int,int,boolean,boolean,boolean)}and {@link org.ejml.ops.SingularOps} contains additional helpful SVD related functions.
*Note* that the ordering of singular values is not guaranteed, unless done so by a specific implementation. The singular values can be put into descending order while adjusting U and V using {@link org.ejml.ops.SingularOps#descendingOrder(org.ejml.data.DenseMatrix64F,boolean,org.ejml.data.DenseMatrix64F,org.ejml.data.DenseMatrix64F,boolean)} SingularOps.descendingOrder()}.
@author Peter Abeles
|
|
|
|