Class SvdImplicitQrDecompose_FDRM
- java.lang.Object
-
- org.ejml.dense.row.decomposition.svd.SvdImplicitQrDecompose_FDRM
-
- All Implemented Interfaces:
org.ejml.interfaces.decomposition.DecompositionInterface<org.ejml.data.FMatrixRMaj>,org.ejml.interfaces.decomposition.SingularValueDecomposition<org.ejml.data.FMatrixRMaj>,org.ejml.interfaces.decomposition.SingularValueDecomposition_F32<org.ejml.data.FMatrixRMaj>
public class SvdImplicitQrDecompose_FDRM extends java.lang.Object implements org.ejml.interfaces.decomposition.SingularValueDecomposition_F32<org.ejml.data.FMatrixRMaj>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 Summary
Constructors Constructor Description SvdImplicitQrDecompose_FDRM(boolean compact, boolean computeU, boolean computeV, boolean canUseTallBidiagonal)Configures the class
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleandecompose(org.ejml.data.FMatrixRMaj orig)float[]getSingularValues()org.ejml.data.FMatrixRMajgetU(org.ejml.data.FMatrixRMaj U, boolean transpose)org.ejml.data.FMatrixRMajgetV(org.ejml.data.FMatrixRMaj V, boolean transpose)org.ejml.data.FMatrixRMajgetW(org.ejml.data.FMatrixRMaj W)booleaninputModified()booleanisCompact()intnumberOfSingularValues()intnumCols()intnumRows()
-
-
-
Constructor Detail
-
SvdImplicitQrDecompose_FDRM
public SvdImplicitQrDecompose_FDRM(boolean compact, boolean computeU, boolean computeV, boolean canUseTallBidiagonal)Configures the class- Parameters:
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.
-
-
Method Detail
-
getSingularValues
public float[] getSingularValues()
- Specified by:
getSingularValuesin interfaceorg.ejml.interfaces.decomposition.SingularValueDecomposition_F32<org.ejml.data.FMatrixRMaj>
-
numberOfSingularValues
public int numberOfSingularValues()
- Specified by:
numberOfSingularValuesin interfaceorg.ejml.interfaces.decomposition.SingularValueDecomposition<org.ejml.data.FMatrixRMaj>
-
isCompact
public boolean isCompact()
- Specified by:
isCompactin interfaceorg.ejml.interfaces.decomposition.SingularValueDecomposition<org.ejml.data.FMatrixRMaj>
-
getU
public org.ejml.data.FMatrixRMaj getU(org.ejml.data.FMatrixRMaj U, boolean transpose)- Specified by:
getUin interfaceorg.ejml.interfaces.decomposition.SingularValueDecomposition<org.ejml.data.FMatrixRMaj>
-
getV
public org.ejml.data.FMatrixRMaj getV(org.ejml.data.FMatrixRMaj V, boolean transpose)- Specified by:
getVin interfaceorg.ejml.interfaces.decomposition.SingularValueDecomposition<org.ejml.data.FMatrixRMaj>
-
getW
public org.ejml.data.FMatrixRMaj getW(org.ejml.data.FMatrixRMaj W)
- Specified by:
getWin interfaceorg.ejml.interfaces.decomposition.SingularValueDecomposition<org.ejml.data.FMatrixRMaj>
-
decompose
public boolean decompose(org.ejml.data.FMatrixRMaj orig)
- Specified by:
decomposein interfaceorg.ejml.interfaces.decomposition.DecompositionInterface<org.ejml.data.FMatrixRMaj>
-
inputModified
public boolean inputModified()
- Specified by:
inputModifiedin interfaceorg.ejml.interfaces.decomposition.DecompositionInterface<org.ejml.data.FMatrixRMaj>
-
numRows
public int numRows()
- Specified by:
numRowsin interfaceorg.ejml.interfaces.decomposition.SingularValueDecomposition<org.ejml.data.FMatrixRMaj>
-
numCols
public int numCols()
- Specified by:
numColsin interfaceorg.ejml.interfaces.decomposition.SingularValueDecomposition<org.ejml.data.FMatrixRMaj>
-
-