Class TridiagonalDecompositionHouseholder_FDRB
java.lang.Object
org.ejml.dense.block.decomposition.hessenberg.TridiagonalDecompositionHouseholder_FDRB
- All Implemented Interfaces:
DecompositionInterface<FMatrixRBlock>,TridiagonalSimilarDecomposition<FMatrixRBlock>,TridiagonalSimilarDecomposition_F32<FMatrixRBlock>
@Generated("org.ejml.dense.block.decomposition.hessenberg.TridiagonalDecompositionHouseholder_DDRB")
public class TridiagonalDecompositionHouseholder_FDRB
extends Object
implements TridiagonalSimilarDecomposition_F32<FMatrixRBlock>
Tridiagonal similar decomposition for block matrices. Orthogonal matrices are computed using householder vectors.
Based off algorithm in section 2 of J. J. Dongarra, D. C. Sorensen, S. J. Hammarling,
"Block Reduction of Matrices to Condensed Forms for Eigenvalue Computations" Journal of
Computations and Applied Mathematics 27 (1989) 215-227
Computations of Householder reflectors has been modified from what is presented in that paper to how
it is performed in "Fundamentals of Matrix Computations" 2nd ed. by David S. Watkins.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected FMatrixRBlockprotected float[]protected FMatrixRBlockprotected FMatrixRBlockprotected FMatrixRMaj -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleandecompose(FMatrixRBlock orig) Computes the decomposition of the input matrix.voidgetDiagonal(float[] diag, float[] off) Extracts the diagonal and off diagonal elements of the decomposed tridiagonal matrix.getQ(@Nullable FMatrixRBlock Q, boolean transposed) An orthogonal matrix that has the following property: T = QHAQgetT(@Nullable FMatrixRBlock T) Extracts the tridiagonal matrix found in the decomposition.booleanChecks if the input matrix toDecompositionInterface.decompose(org.ejml.data.Matrix)is modified during the decomposition process.static voidmultPlusTransA(int blockLength, FSubmatrixD1 A, FSubmatrixD1 B, FSubmatrixD1 C) C = C + A^T*B
-
Field Details
-
A
-
V
-
tmp
-
gammas
protected float[] gammas -
zerosM
-
-
Constructor Details
-
TridiagonalDecompositionHouseholder_FDRB
public TridiagonalDecompositionHouseholder_FDRB()
-
-
Method Details
-
getT
Description copied from interface:TridiagonalSimilarDecompositionExtracts the tridiagonal matrix found in the decomposition.- Specified by:
getTin interfaceTridiagonalSimilarDecomposition<FMatrixRBlock>- Parameters:
T- If not null then the results will be stored here. Otherwise a new matrix will be created.- Returns:
- The extracted T matrix.
-
getQ
Description copied from interface:TridiagonalSimilarDecompositionAn orthogonal matrix that has the following property: T = QHAQ- Specified by:
getQin interfaceTridiagonalSimilarDecomposition<FMatrixRBlock>- Parameters:
Q- If not null then the results will be stored here. Otherwise a new matrix will be created.transposed- If true then the transpose (real) or conjugate transpose (complex) of Q is returned.- Returns:
- The extracted Q matrix.
-
getDiagonal
public void getDiagonal(float[] diag, float[] off) Description copied from interface:TridiagonalSimilarDecomposition_F32Extracts the diagonal and off diagonal elements of the decomposed tridiagonal matrix. Since it is symmetric only one off diagonal array is returned.- Specified by:
getDiagonalin interfaceTridiagonalSimilarDecomposition_F32<FMatrixRBlock>- Parameters:
diag- Diagonal elements. Modified.off- off diagonal elements. Modified.
-
decompose
Description copied from interface:DecompositionInterfaceComputes the decomposition of the input matrix. Depending on the implementation the input matrix might be stored internally or modified. If it is modified then the functionDecompositionInterface.inputModified()will return true and the matrix should not be modified until the decomposition is no longer needed.- Specified by:
decomposein interfaceDecompositionInterface<FMatrixRBlock>- Parameters:
orig- The matrix which is being decomposed. Modification is implementation dependent.- Returns:
- Returns if it was able to decompose the matrix.
-
multPlusTransA
C = C + A^T*B- Parameters:
A- row block vectorB- row block vector
-
inputModified
public boolean inputModified()Description copied from interface:DecompositionInterfaceChecks if the input matrix toDecompositionInterface.decompose(org.ejml.data.Matrix)is modified during the decomposition process.- Specified by:
inputModifiedin interfaceDecompositionInterface<FMatrixRBlock>- Returns:
- true if the input matrix to decompose() is modified.
-