public class HessenbergSimilarDecomposition_CDRM
extends java.lang.Object
implements org.ejml.interfaces.decomposition.DecompositionInterface<org.ejml.data.CMatrixRMaj>
Complex Hessenberg decomposition. It find matrices O and P such that:
A = OPOH
where A is an m by m matrix, O is an orthogonal matrix, and P is an upper Hessenberg matrix.
A matrix is upper Hessenberg if aij = 0 for all i > j+1. For example, the following matrix
is upper Hessenberg.
WRITE IT OUT USING A TABLE
This decomposition is primarily used as a step for computing the eigenvalue decomposition of a matrix. The basic algorithm comes from David S. Watkins, "Fundamentals of MatrixComputations" Second Edition.
Constructor and Description |
---|
HessenbergSimilarDecomposition_CDRM() |
HessenbergSimilarDecomposition_CDRM(int initialSize)
Creates a decomposition that won't need to allocate new memory if it is passed matrices up to
the specified size.
|
Modifier and Type | Method and Description |
---|---|
boolean |
decompose(org.ejml.data.CMatrixRMaj A)
Computes the decomposition of the provided matrix.
|
float[] |
getGammas() |
org.ejml.data.CMatrixRMaj |
getH(org.ejml.data.CMatrixRMaj H)
An upper Hessenberg matrix from the decomposition.
|
org.ejml.data.CMatrixRMaj |
getQ(org.ejml.data.CMatrixRMaj Q)
An orthogonal matrix that has the following property: H = QTAQ
|
org.ejml.data.CMatrixRMaj |
getQH()
The raw QH matrix that is stored internally.
|
boolean |
inputModified() |
public HessenbergSimilarDecomposition_CDRM(int initialSize)
initialSize
- Expected size of the matrices it will decompose.public HessenbergSimilarDecomposition_CDRM()
public boolean decompose(org.ejml.data.CMatrixRMaj A)
decompose
in interface org.ejml.interfaces.decomposition.DecompositionInterface<org.ejml.data.CMatrixRMaj>
A
- The matrix that is being decomposed. Not modified.public boolean inputModified()
inputModified
in interface org.ejml.interfaces.decomposition.DecompositionInterface<org.ejml.data.CMatrixRMaj>
public org.ejml.data.CMatrixRMaj getQH()
public org.ejml.data.CMatrixRMaj getH(org.ejml.data.CMatrixRMaj H)
H
- 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)
Q
- If not null then the results will be stored here. Otherwise a new matrix will be created.public float[] getGammas()