public class TridiagonalDecompositionHouseholder_CDRM
extends java.lang.Object
implements org.ejml.interfaces.decomposition.TridiagonalSimilarDecomposition_F32<org.ejml.data.CMatrixRMaj>
Performs a complex similar tridiagonal decomposition on a
square Hermitian 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*OH
where A is a Hermitian m by m matrix, O is an orthogonal matrix, and T is a tridiagonal matrix.
This implementation is inspired by description of the real symmetric decomposition in:
David S. Watkins, "Fundamentals of Matrix Computations," Second Edition. Page 349-355
| Constructor and Description |
|---|
TridiagonalDecompositionHouseholder_CDRM() |
| Modifier and Type | Method and Description |
|---|---|
boolean |
decompose(org.ejml.data.CMatrixRMaj A)
Decomposes the provided symmetric matrix.
|
void |
getDiagonal(float[] diag,
float[] off) |
float[] |
getGammas() |
org.ejml.data.CMatrixRMaj |
getQ(org.ejml.data.CMatrixRMaj Q,
boolean transposed)
An orthogonal matrix that has the following property: T = QHAQ
|
org.ejml.data.CMatrixRMaj |
getQT()
Returns the internal matrix where the decomposed results are stored.
|
org.ejml.data.CMatrixRMaj |
getT(org.ejml.data.CMatrixRMaj T)
Extracts the tridiagonal matrix found in the decomposition.
|
void |
householderSymmetric(int row,
float gamma)
Performs the householder operations on left and right and side of the matrix.
|
void |
init(org.ejml.data.CMatrixRMaj A)
If needed declares and sets up internal data structures.
|
boolean |
inputModified() |
public TridiagonalDecompositionHouseholder_CDRM()
public org.ejml.data.CMatrixRMaj getQT()
public void getDiagonal(float[] diag,
float[] off)
getDiagonal in interface org.ejml.interfaces.decomposition.TridiagonalSimilarDecomposition_F32<org.ejml.data.CMatrixRMaj>public org.ejml.data.CMatrixRMaj getT(org.ejml.data.CMatrixRMaj T)
getT in interface org.ejml.interfaces.decomposition.TridiagonalSimilarDecomposition<org.ejml.data.CMatrixRMaj>T - If not null then the results will be stored here. Otherwise a new matrix will be created.public org.ejml.data.CMatrixRMaj getQ(org.ejml.data.CMatrixRMaj Q,
boolean transposed)
getQ in interface org.ejml.interfaces.decomposition.TridiagonalSimilarDecomposition<org.ejml.data.CMatrixRMaj>Q - If not null then the results will be stored here. Otherwise a new matrix will be created.public boolean decompose(org.ejml.data.CMatrixRMaj A)
decompose in interface org.ejml.interfaces.decomposition.DecompositionInterface<org.ejml.data.CMatrixRMaj>A - Symmetric matrix that is going to be decomposed. Not modified.public void householderSymmetric(int row,
float gamma)
row - Specifies the submatrix.gamma - The gamma for the householder operationpublic void init(org.ejml.data.CMatrixRMaj A)
A - Matrix being decomposed.public boolean inputModified()
inputModified in interface org.ejml.interfaces.decomposition.DecompositionInterface<org.ejml.data.CMatrixRMaj>public float[] getGammas()