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