Class SymmetricQRAlgorithmDecomposition_FDRM

  • All Implemented Interfaces:
    org.ejml.interfaces.decomposition.DecompositionInterface<org.ejml.data.FMatrixRMaj>, org.ejml.interfaces.decomposition.EigenDecomposition<org.ejml.data.FMatrixRMaj>, org.ejml.interfaces.decomposition.EigenDecomposition_F32<org.ejml.data.FMatrixRMaj>

    public class SymmetricQRAlgorithmDecomposition_FDRM
    extends java.lang.Object
    implements org.ejml.interfaces.decomposition.EigenDecomposition_F32<org.ejml.data.FMatrixRMaj>

    Computes the eigenvalues and eigenvectors of a real symmetric matrix using the symmetric implicit QR algorithm. Inside each iteration a QR decomposition of Ai-piI is implicitly computed.

    This implementation is based on the algorithm is sketched out in:
    David S. Watkins, "Fundamentals of Matrix Computations," Second Edition. page 377-385

    See Also:
    SymmetricQrAlgorithm_FDRM, TridiagonalDecompositionHouseholder_FDRM
    • Constructor Detail

      • SymmetricQRAlgorithmDecomposition_FDRM

        public SymmetricQRAlgorithmDecomposition_FDRM​(org.ejml.interfaces.decomposition.TridiagonalSimilarDecomposition_F32<org.ejml.data.FMatrixRMaj> decomp,
                                                      boolean computeVectors)
      • SymmetricQRAlgorithmDecomposition_FDRM

        public SymmetricQRAlgorithmDecomposition_FDRM​(boolean computeVectors)
    • Method Detail

      • setComputeVectorsWithValues

        public void setComputeVectorsWithValues​(boolean computeVectorsWithValues)
      • setMaxIterations

        public void setMaxIterations​(int max)
        Used to limit the number of internal QR iterations that the QR algorithm performs. 20 should be enough for most applications.
        Parameters:
        max - The maximum number of QR iterations it will perform.
      • getNumberOfEigenvalues

        public int getNumberOfEigenvalues()
        Specified by:
        getNumberOfEigenvalues in interface org.ejml.interfaces.decomposition.EigenDecomposition<org.ejml.data.FMatrixRMaj>
      • getEigenvalue

        public org.ejml.data.Complex_F32 getEigenvalue​(int index)
        Specified by:
        getEigenvalue in interface org.ejml.interfaces.decomposition.EigenDecomposition_F32<org.ejml.data.FMatrixRMaj>
      • getEigenVector

        public org.ejml.data.FMatrixRMaj getEigenVector​(int index)
        Specified by:
        getEigenVector in interface org.ejml.interfaces.decomposition.EigenDecomposition<org.ejml.data.FMatrixRMaj>
      • decompose

        public boolean decompose​(org.ejml.data.FMatrixRMaj orig)
        Decomposes the matrix using the QR algorithm. Care was taken to minimize unnecessary memory copying and cache skipping.
        Specified by:
        decompose in interface org.ejml.interfaces.decomposition.DecompositionInterface<org.ejml.data.FMatrixRMaj>
        Parameters:
        orig - The matrix which is being decomposed. Not modified.
        Returns:
        true if it decomposed the matrix or false if an error was detected. This will not catch all errors.
      • inputModified

        public boolean inputModified()
        Specified by:
        inputModified in interface org.ejml.interfaces.decomposition.DecompositionInterface<org.ejml.data.FMatrixRMaj>