public class HessenbergSimilarDecomposition_ZDRM
extends java.lang.Object
implements org.ejml.interfaces.decomposition.DecompositionInterface<org.ejml.data.ZMatrixRMaj>
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_ZDRM() |
HessenbergSimilarDecomposition_ZDRM(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.ZMatrixRMaj A)
Computes the decomposition of the provided matrix.
|
double[] |
getGammas() |
org.ejml.data.ZMatrixRMaj |
getH(org.ejml.data.ZMatrixRMaj H)
An upper Hessenberg matrix from the decomposition.
|
org.ejml.data.ZMatrixRMaj |
getQ(org.ejml.data.ZMatrixRMaj Q)
An orthogonal matrix that has the following property: H = QTAQ
|
org.ejml.data.ZMatrixRMaj |
getQH()
The raw QH matrix that is stored internally.
|
boolean |
inputModified() |
public HessenbergSimilarDecomposition_ZDRM(int initialSize)
initialSize
- Expected size of the matrices it will decompose.public HessenbergSimilarDecomposition_ZDRM()
public boolean decompose(org.ejml.data.ZMatrixRMaj A)
decompose
in interface org.ejml.interfaces.decomposition.DecompositionInterface<org.ejml.data.ZMatrixRMaj>
A
- The matrix that is being decomposed. Not modified.public boolean inputModified()
inputModified
in interface org.ejml.interfaces.decomposition.DecompositionInterface<org.ejml.data.ZMatrixRMaj>
public org.ejml.data.ZMatrixRMaj getQH()
public org.ejml.data.ZMatrixRMaj getH(org.ejml.data.ZMatrixRMaj H)
H
- If not null then the results will be stored here. Otherwise a new matrix will be created.public org.ejml.data.ZMatrixRMaj getQ(org.ejml.data.ZMatrixRMaj Q)
Q
- If not null then the results will be stored here. Otherwise a new matrix will be created.public double[] getGammas()