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