Class SymmetricQrAlgorithm_FDRM
java.lang.Object
org.ejml.dense.row.decomposition.eig.symm.SymmetricQrAlgorithm_FDRM
@Generated("org.ejml.dense.row.decomposition.eig.symm.SymmetricQrAlgorithm_DDRM")
public class SymmetricQrAlgorithm_FDRM
extends Object
Computes the eigenvalues and eigenvectors of a symmetric tridiagonal matrix using the symmetric QR algorithm.
This implementation is based on the algorithm is sketched out in:
David S. Watkins, "Fundamentals of Matrix Computations," Second Edition. page 377-385
-
Constructor Summary
ConstructorDescriptionCreates a new SymmetricQREigenvalue class that declares its own SymmetricQREigenHelper. -
Method Summary
Modifier and TypeMethodDescriptionfloat
getEigenvalue
(int index) Returns the eigenvalue at the specified index.int
Returns the number of eigenvalues available.@Nullable FMatrixRMaj
getQ()
void
First looks for zeros and then performs the implicit single step in the QR Algorithm.boolean
process
(int sideLength, @org.jetbrains.annotations.Nullable float[] diag, @org.jetbrains.annotations.Nullable float[] off) boolean
process
(int sideLength, @org.jetbrains.annotations.Nullable float[] diag, @org.jetbrains.annotations.Nullable float[] off, float[] eigenvalues) Computes the eigenvalue of the provided tridiagonal matrix.void
setFastEigenvalues
(boolean fastEigenvalues) void
setMaxIterations
(int maxIterations) void
setQ
(@Nullable FMatrixRMaj q)
-
Constructor Details
-
SymmetricQrAlgorithm_FDRM
-
SymmetricQrAlgorithm_FDRM
public SymmetricQrAlgorithm_FDRM()Creates a new SymmetricQREigenvalue class that declares its own SymmetricQREigenHelper.
-
-
Method Details
-
setMaxIterations
public void setMaxIterations(int maxIterations) -
getQ
-
setQ
-
setFastEigenvalues
public void setFastEigenvalues(boolean fastEigenvalues) -
getEigenvalue
public float getEigenvalue(int index) Returns the eigenvalue at the specified index.- Parameters:
index
- Which eigenvalue.- Returns:
- The eigenvalue.
-
getNumberOfEigenvalues
public int getNumberOfEigenvalues()Returns the number of eigenvalues available.- Returns:
- How many eigenvalues there are.
-
process
public boolean process(int sideLength, @Nullable @org.jetbrains.annotations.Nullable float[] diag, @Nullable @org.jetbrains.annotations.Nullable float[] off, float[] eigenvalues) Computes the eigenvalue of the provided tridiagonal matrix. Note that only the upper portion needs to be tridiagonal. The bottom diagonal is assumed to be the same as the top.- Parameters:
sideLength
- Number of rows and columns in the input matrix.diag
- Diagonal elements from tridiagonal matrix. Modified.off
- Off diagonal elements from tridiagonal matrix. Modified.- Returns:
- true if it succeeds and false if it fails.
-
process
public boolean process(int sideLength, @Nullable @org.jetbrains.annotations.Nullable float[] diag, @Nullable @org.jetbrains.annotations.Nullable float[] off) -
performStep
public void performStep()First looks for zeros and then performs the implicit single step in the QR Algorithm.
-