public class TridiagonalDecompositionHouseholder_DDRM
extends java.lang.Object
implements org.ejml.interfaces.decomposition.TridiagonalSimilarDecomposition_F64<org.ejml.data.DMatrixRMaj>
Performs a similar tridiagonal decomposition
on a square symmetric input matrix.
Householder vectors perform the similar operation and the symmetry is taken advantage
of for good performance.
Finds the decomposition of a matrix in the form of:
A = O*T*OT
where A is a symmetric m by m matrix, O is an orthogonal matrix, and T is a tridiagonal matrix.
This implementation is based off of the algorithm described in:
David S. Watkins, "Fundamentals of Matrix Computations," Second Edition. Page 349-355
Constructor and Description |
---|
TridiagonalDecompositionHouseholder_DDRM() |
Modifier and Type | Method and Description |
---|---|
boolean |
decompose(org.ejml.data.DMatrixRMaj A)
Decomposes the provided symmetric matrix.
|
void |
getDiagonal(double[] diag,
double[] off) |
org.ejml.data.DMatrixRMaj |
getQ(org.ejml.data.DMatrixRMaj Q,
boolean transposed)
An orthogonal matrix that has the following property: T = QTAQ
|
org.ejml.data.DMatrixRMaj |
getQT()
Returns the internal matrix where the decomposed results are stored.
|
org.ejml.data.DMatrixRMaj |
getT(org.ejml.data.DMatrixRMaj T)
Extracts the tridiagonal matrix found in the decomposition.
|
void |
householderSymmetric(int row,
double gamma)
Performs the householder operations on left and right and side of the matrix.
|
void |
init(org.ejml.data.DMatrixRMaj A)
If needed declares and sets up internal data structures.
|
boolean |
inputModified() |
public TridiagonalDecompositionHouseholder_DDRM()
public org.ejml.data.DMatrixRMaj getQT()
public void getDiagonal(double[] diag, double[] off)
getDiagonal
in interface org.ejml.interfaces.decomposition.TridiagonalSimilarDecomposition_F64<org.ejml.data.DMatrixRMaj>
public org.ejml.data.DMatrixRMaj getT(org.ejml.data.DMatrixRMaj T)
getT
in interface org.ejml.interfaces.decomposition.TridiagonalSimilarDecomposition<org.ejml.data.DMatrixRMaj>
T
- If not null then the results will be stored here. Otherwise a new matrix will be created.public org.ejml.data.DMatrixRMaj getQ(org.ejml.data.DMatrixRMaj Q, boolean transposed)
getQ
in interface org.ejml.interfaces.decomposition.TridiagonalSimilarDecomposition<org.ejml.data.DMatrixRMaj>
Q
- If not null then the results will be stored here. Otherwise a new matrix will be created.public boolean decompose(org.ejml.data.DMatrixRMaj A)
decompose
in interface org.ejml.interfaces.decomposition.DecompositionInterface<org.ejml.data.DMatrixRMaj>
A
- Symmetric matrix that is going to be decomposed. Not modified.public void householderSymmetric(int row, double gamma)
row
- Specifies the submatrix.gamma
- The gamma for the householder operationpublic void init(org.ejml.data.DMatrixRMaj A)
A
- Matrix being decomposed.public boolean inputModified()
inputModified
in interface org.ejml.interfaces.decomposition.DecompositionInterface<org.ejml.data.DMatrixRMaj>