public class SvdImplicitQrDecompose_D64
extends java.lang.Object
implements org.ejml.interfaces.decomposition.SingularValueDecomposition<org.ejml.data.DenseMatrix64F>
Computes the Singular value decomposition of a matrix using the implicit QR algorithm for singular value decomposition. It works by first by transforming the matrix to a bidiagonal A=U*B*VT form, then it implicitly computing the eigenvalues of the BTB matrix, which are the same as the singular values in the original A matrix.
Based off of the description provided in:
David S. Watkins, "Fundamentals of Matrix Computations," Second Edition. Page 404-411
| Constructor and Description |
|---|
SvdImplicitQrDecompose_D64(boolean compact,
boolean computeU,
boolean computeV,
boolean canUseTallBidiagonal)
Configures the class
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
decompose(org.ejml.data.DenseMatrix64F orig) |
double[] |
getSingularValues() |
org.ejml.data.DenseMatrix64F |
getU(org.ejml.data.DenseMatrix64F U,
boolean transpose) |
org.ejml.data.DenseMatrix64F |
getV(org.ejml.data.DenseMatrix64F V,
boolean transpose) |
org.ejml.data.DenseMatrix64F |
getW(org.ejml.data.DenseMatrix64F W) |
boolean |
inputModified() |
boolean |
isCompact() |
int |
numberOfSingularValues() |
int |
numCols() |
int |
numRows() |
public SvdImplicitQrDecompose_D64(boolean compact,
boolean computeU,
boolean computeV,
boolean canUseTallBidiagonal)
compact - Compute a compact SVDcomputeU - If true it will compute the U matrixcomputeV - If true it will compute the V matrixcanUseTallBidiagonal - If true then it can choose to use a tall Bidiagonal decomposition to improve runtime performance.public double[] getSingularValues()
getSingularValues in interface org.ejml.interfaces.decomposition.SingularValueDecomposition<org.ejml.data.DenseMatrix64F>public int numberOfSingularValues()
numberOfSingularValues in interface org.ejml.interfaces.decomposition.SingularValueDecomposition<org.ejml.data.DenseMatrix64F>public boolean isCompact()
isCompact in interface org.ejml.interfaces.decomposition.SingularValueDecomposition<org.ejml.data.DenseMatrix64F>public org.ejml.data.DenseMatrix64F getU(org.ejml.data.DenseMatrix64F U,
boolean transpose)
getU in interface org.ejml.interfaces.decomposition.SingularValueDecomposition<org.ejml.data.DenseMatrix64F>public org.ejml.data.DenseMatrix64F getV(org.ejml.data.DenseMatrix64F V,
boolean transpose)
getV in interface org.ejml.interfaces.decomposition.SingularValueDecomposition<org.ejml.data.DenseMatrix64F>public org.ejml.data.DenseMatrix64F getW(org.ejml.data.DenseMatrix64F W)
getW in interface org.ejml.interfaces.decomposition.SingularValueDecomposition<org.ejml.data.DenseMatrix64F>public boolean decompose(org.ejml.data.DenseMatrix64F orig)
decompose in interface org.ejml.interfaces.decomposition.DecompositionInterface<org.ejml.data.DenseMatrix64F>public boolean inputModified()
inputModified in interface org.ejml.interfaces.decomposition.DecompositionInterface<org.ejml.data.DenseMatrix64F>public int numRows()
numRows in interface org.ejml.interfaces.decomposition.SingularValueDecomposition<org.ejml.data.DenseMatrix64F>public int numCols()
numCols in interface org.ejml.interfaces.decomposition.SingularValueDecomposition<org.ejml.data.DenseMatrix64F>