public class SymmetricQrAlgorithm_FDRM
extends java.lang.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 and Description |
---|
SymmetricQrAlgorithm_FDRM()
Creates a new SymmetricQREigenvalue class that declares its own SymmetricQREigenHelper.
|
SymmetricQrAlgorithm_FDRM(SymmetricQREigenHelper_FDRM helper) |
Modifier and Type | Method and Description |
---|---|
float |
getEigenvalue(int index)
Returns the eigenvalue at the specified index.
|
int |
getNumberOfEigenvalues()
Returns the number of eigenvalues available.
|
org.ejml.data.FMatrixRMaj |
getQ() |
void |
performStep()
First looks for zeros and then performs the implicit single step in the QR Algorithm.
|
boolean |
process(int sideLength,
float[] diag,
float[] off) |
boolean |
process(int sideLength,
float[] diag,
float[] off,
float[] eigenvalues)
Computes the eigenvalue of the provided tridiagonal matrix.
|
void |
setFastEigenvalues(boolean fastEigenvalues) |
void |
setMaxIterations(int maxIterations) |
void |
setQ(org.ejml.data.FMatrixRMaj q) |
public SymmetricQrAlgorithm_FDRM(SymmetricQREigenHelper_FDRM helper)
public SymmetricQrAlgorithm_FDRM()
public void setMaxIterations(int maxIterations)
public org.ejml.data.FMatrixRMaj getQ()
public void setQ(org.ejml.data.FMatrixRMaj q)
public void setFastEigenvalues(boolean fastEigenvalues)
public float getEigenvalue(int index)
index
- Which eigenvalue.public int getNumberOfEigenvalues()
public boolean process(int sideLength, float[] diag, float[] off, float[] eigenvalues)
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.public boolean process(int sideLength, float[] diag, float[] off)
public void performStep()