Class HessenbergSimilarDecomposition_FDRM
java.lang.Object
org.ejml.dense.row.decomposition.hessenberg.HessenbergSimilarDecomposition_FDRM
- All Implemented Interfaces:
DecompositionInterface<FMatrixRMaj>
- Direct Known Subclasses:
HessenbergSimilarDecomposition_MT_FDRM
@Generated("org.ejml.dense.row.decomposition.hessenberg.HessenbergSimilarDecomposition_DDRM")
public class HessenbergSimilarDecomposition_FDRM
extends Object
implements DecompositionInterface<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.
-
Field Summary
-
Constructor Summary
ConstructorDescriptionHessenbergSimilarDecomposition_FDRM
(int initialSize) Creates a decomposition that won't need to allocate new memory if it is passed matrices up to the specified size. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Computes the decomposition of the provided matrix.float[]
getH
(@Nullable FMatrixRMaj H) An upper Hessenberg matrix from the decomposition.getQ
(@Nullable FMatrixRMaj Q) An orthogonal matrix that has the following property: H = QTAQgetQH()
The raw QH matrix that is stored internally.boolean
Checks if the input matrix toDecompositionInterface.decompose(org.ejml.data.Matrix)
is modified during the decomposition process.protected void
rank1UpdateMultL
(FMatrixRMaj A, float gamma, int colA0, int w0, int w1) protected void
rank1UpdateMultR
(FMatrixRMaj A, float gamma, int colA0, int w0, int w1)
-
Field Details
-
b
protected float[] b -
u
protected float[] u
-
-
Constructor Details
-
HessenbergSimilarDecomposition_FDRM
public 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.- Parameters:
initialSize
- Expected size of the matrices it will decompose.
-
HessenbergSimilarDecomposition_FDRM
public HessenbergSimilarDecomposition_FDRM()
-
-
Method Details
-
decompose
Computes the decomposition of the provided matrix. If no errors are detected then true is returned, false otherwise.- Specified by:
decompose
in interfaceDecompositionInterface<FMatrixRMaj>
- Parameters:
A
- The matrix that is being decomposed. Not modified.- Returns:
- If it detects any errors or not.
-
inputModified
public boolean inputModified()Description copied from interface:DecompositionInterface
Checks if the input matrix toDecompositionInterface.decompose(org.ejml.data.Matrix)
is modified during the decomposition process.- Specified by:
inputModified
in interfaceDecompositionInterface<FMatrixRMaj>
- Returns:
- true if the input matrix to decompose() is modified.
-
getQH
The raw QH matrix that is stored internally.- Returns:
- QH matrix.
-
getH
An upper Hessenberg matrix from the decomposition.- Parameters:
H
- If not null then the results will be stored here. Otherwise a new matrix will be created.- Returns:
- The extracted H matrix.
-
getQ
An orthogonal matrix that has the following property: H = QTAQ- Parameters:
Q
- If not null then the results will be stored here. Otherwise a new matrix will be created.- Returns:
- The extracted Q matrix.
-
rank1UpdateMultL
-
rank1UpdateMultR
-
getGammas
public float[] getGammas()
-