org.ejml.alg.block.decomposition.hessenberg
Class TridiagonalDecompositionHouseholder_B64
- java.lang.Object
-
- org.ejml.alg.block.decomposition.hessenberg.TridiagonalDecompositionHouseholder_B64
-
- All Implemented Interfaces:
- DecompositionInterface<BlockMatrix64F>, TridiagonalSimilarDecomposition<BlockMatrix64F>
public class TridiagonalDecompositionHouseholder_B64 extends java.lang.Object implements TridiagonalSimilarDecomposition<BlockMatrix64F>
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.
-
-
Constructor Summary
Constructors Constructor and Description TridiagonalDecompositionHouseholder_B64()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method and Description booleandecompose(BlockMatrix64F orig)Computes the decomposition of the input matrix.voidgetDiagonal(double[] diag, double[] off)Extracts the diagonal and off diagonal elements of the decomposed tridiagonal matrix.BlockMatrix64FgetQ(BlockMatrix64F Q, boolean transposed)An orthogonal matrix that has the following property: T = QTAQBlockMatrix64FgetT(BlockMatrix64F T)Extracts the tridiagonal matrix found in the decomposition.booleaninputModified()Is the input matrix toDecompositionInterface.decompose(org.ejml.data.Matrix)is modified during the decomposition process.static voidmultPlusTransA(int blockLength, D1Submatrix64F A, D1Submatrix64F B, D1Submatrix64F C)C = C + A^T*B
-
-
-
Constructor Detail
-
TridiagonalDecompositionHouseholder_B64
public TridiagonalDecompositionHouseholder_B64()
-
-
Method Detail
-
getT
public BlockMatrix64F getT(BlockMatrix64F T)
Description copied from interface:TridiagonalSimilarDecompositionExtracts the tridiagonal matrix found in the decomposition.- Specified by:
getTin interfaceTridiagonalSimilarDecomposition<BlockMatrix64F>- 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
public BlockMatrix64F getQ(BlockMatrix64F Q, boolean transposed)
Description copied from interface:TridiagonalSimilarDecompositionAn orthogonal matrix that has the following property: T = QTAQ- Specified by:
getQin interfaceTridiagonalSimilarDecomposition<BlockMatrix64F>- Parameters:
Q- If not null then the results will be stored here. Otherwise a new matrix will be created.- Returns:
- The extracted Q matrix.
-
getDiagonal
public void getDiagonal(double[] diag, double[] off)Description copied from interface:TridiagonalSimilarDecompositionExtracts 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<BlockMatrix64F>- Parameters:
diag- Diagonal elements. Modified.off- off diagonal elements. Modified.
-
decompose
public boolean decompose(BlockMatrix64F orig)
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<BlockMatrix64F>- Parameters:
orig- The matrix which is being decomposed. Modification is implementation dependent.- Returns:
- Returns if it was able to decompose the matrix.
-
multPlusTransA
public static void multPlusTransA(int blockLength, D1Submatrix64F A, D1Submatrix64F B, D1Submatrix64F C)C = C + A^T*B- Parameters:
blockLength-A- row block vectorB- row block vectorC-
-
inputModified
public boolean inputModified()
Description copied from interface:DecompositionInterfaceIs the input matrix toDecompositionInterface.decompose(org.ejml.data.Matrix)is modified during the decomposition process.- Specified by:
inputModifiedin interfaceDecompositionInterface<BlockMatrix64F>- Returns:
- true if the input matrix to decompose() is modified.
-
-
DMelt 3.0 © DataMelt by jWork.ORG