Class SwitchingEigenDecomposition_DDRM
java.lang.Object
org.ejml.dense.row.decomposition.eig.SwitchingEigenDecomposition_DDRM
- All Implemented Interfaces:
DecompositionInterface<DMatrixRMaj>
,EigenDecomposition<DMatrixRMaj>
,EigenDecomposition_F64<DMatrixRMaj>
public class SwitchingEigenDecomposition_DDRM
extends Object
implements EigenDecomposition_F64<DMatrixRMaj>
Checks to see what type of matrix is being decomposed and calls different eigenvalue decomposition
algorithms depending on the results. This primarily checks to see if the matrix is symmetric or not.
-
Constructor Summary
ConstructorDescriptionSwitchingEigenDecomposition_DDRM
(int matrixSize) SwitchingEigenDecomposition_DDRM
(int matrixSize, boolean computeVectors, double tol) SwitchingEigenDecomposition_DDRM
(EigenDecomposition_F64<DMatrixRMaj> symmetricAlg, EigenDecomposition_F64<DMatrixRMaj> generalAlg, double tol) -
Method Summary
Modifier and TypeMethodDescriptionboolean
decompose
(DMatrixRMaj orig) Computes the decomposition of the input matrix.getEigenvalue
(int index) Returns an eigenvalue as a complex number.getEigenVector
(int index) Used to retrieve real valued eigenvectors.int
Returns the number of eigenvalues/eigenvectors.boolean
Checks if the input matrix toDecompositionInterface.decompose(org.ejml.data.Matrix)
is modified during the decomposition process.
-
Constructor Details
-
SwitchingEigenDecomposition_DDRM
public SwitchingEigenDecomposition_DDRM(int matrixSize, boolean computeVectors, double tol) - Parameters:
tol
- Tolerance for a matrix being symmetric
-
SwitchingEigenDecomposition_DDRM
public SwitchingEigenDecomposition_DDRM(EigenDecomposition_F64<DMatrixRMaj> symmetricAlg, EigenDecomposition_F64<DMatrixRMaj> generalAlg, double tol) -
SwitchingEigenDecomposition_DDRM
public SwitchingEigenDecomposition_DDRM(int matrixSize)
-
-
Method Details
-
getNumberOfEigenvalues
public int getNumberOfEigenvalues()Description copied from interface:EigenDecomposition
Returns the number of eigenvalues/eigenvectors. This is the matrix's dimension.- Specified by:
getNumberOfEigenvalues
in interfaceEigenDecomposition<DMatrixRMaj>
- Returns:
- number of eigenvalues/eigenvectors.
-
getEigenvalue
Description copied from interface:EigenDecomposition_F64
Returns an eigenvalue as a complex number. For symmetric matrices the returned eigenvalue will always be a real number, which means the imaginary component will be equal to zero.
NOTE: The order of the eigenvalues is dependent upon the decomposition algorithm used. This means that they may or may not be ordered by magnitude. For example the QR algorithm will returns results that are partially ordered by magnitude, but this behavior should not be relied upon.
- Specified by:
getEigenvalue
in interfaceEigenDecomposition_F64<DMatrixRMaj>
- Parameters:
index
- Index of the eigenvalue eigenvector pair.- Returns:
- An eigenvalue.
-
getEigenVector
Description copied from interface:EigenDecomposition
Used to retrieve real valued eigenvectors. If an eigenvector is associated with a complex eigenvalue then null is returned instead.
- Specified by:
getEigenVector
in interfaceEigenDecomposition<DMatrixRMaj>
- Parameters:
index
- Index of the eigenvalue eigenvector pair.- Returns:
- If the associated eigenvalue is real then an eigenvector is returned, null otherwise.
-
decompose
Description copied from interface:DecompositionInterface
Computes the decomposition of the input matrix. Depending on the implementation the input matrix might be stored internally or modified. If it is modified then the functionDecompositionInterface.inputModified()
will return true and the matrix should not be modified until the decomposition is no longer needed.- Specified by:
decompose
in interfaceDecompositionInterface<DMatrixRMaj>
- Parameters:
orig
- The matrix which is being decomposed. Modification is implementation dependent.- Returns:
- Returns if it was able to decompose the matrix.
-
inputModified
public boolean inputModified()Description copied from interface:DecompositionInterface
Checks if the input matrix toDecompositionInterface.decompose(org.ejml.data.Matrix)
is modified during the decomposition process.- Specified by:
inputModified
in interfaceDecompositionInterface<DMatrixRMaj>
- Returns:
- true if the input matrix to decompose() is modified.
-