Class QRDecompositionHouseholderTran_FDRM
- All Implemented Interfaces:
- DecompositionInterface<FMatrixRMaj>,- QRDecomposition<FMatrixRMaj>
Householder QR decomposition is rich in operations along the columns of the matrix. This can be taken advantage of by solving for the Q matrix in a column major format to reduce the number of CPU cache misses and the number of copies that are performed.
- See Also:
- 
Field SummaryFields
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionvoidA = Q*AvoidA = QT*AbooleanTo decompose the matrix 'A' it must have full rank.float[]getQ(@Nullable FMatrixRMaj Q, boolean compact) Computes the Q matrix from the information stored in the QR matrix.getQR()Inner matrix that stores the decompositiongetR(@Nullable FMatrixRMaj R, boolean compact) Returns an upper triangular matrix which is the R in the QR decomposition.protected voidhouseholder(int j) Computes the householder vector "u" for the first column of submatrix j.booleanChecks if the input matrix toDecompositionInterface.decompose(org.ejml.data.Matrix)is modified during the decomposition process.voidsetExpectedMaxSize(int numRows, int numCols) protected voidupdateA(int w) Takes the results from the householder computation and updates the 'A' matrix.
 
 A = (I - γ*u*uT)A
- 
Field Details- 
QRWhere the Q and R matrices are stored. For speed reasons this is transposed
- 
vprotected float[] v
- 
numColsprotected int numCols
- 
numRowsprotected int numRows
- 
minLengthprotected int minLength
- 
gammasprotected float[] gammas
- 
gammaprotected float gamma
- 
tauprotected float tau
- 
errorprotected boolean error
 
- 
- 
Constructor Details- 
QRDecompositionHouseholderTran_FDRMpublic QRDecompositionHouseholderTran_FDRM()
 
- 
- 
Method Details- 
setExpectedMaxSizepublic void setExpectedMaxSize(int numRows, int numCols) 
- 
getQRInner matrix that stores the decomposition
- 
getQComputes the Q matrix from the information stored in the QR matrix. This operation requires about 4(m2n-mn2+n3/3) flops.- Specified by:
- getQin interface- QRDecomposition<FMatrixRMaj>
- Parameters:
- Q- The orthogonal Q matrix.
- compact- If true an m by n matrix is created, otherwise n by n.
- Returns:
- The Q matrix.
 
- 
applyQA = Q*A- Parameters:
- A- Matrix that is being multiplied by Q. Is modified.
 
- 
applyTranQA = QT*A- Parameters:
- A- Matrix that is being multiplied by QT. Is modified.
 
- 
getRReturns an upper triangular matrix which is the R in the QR decomposition.- Specified by:
- getRin interface- QRDecomposition<FMatrixRMaj>
- Parameters:
- R- An upper triangular matrix.
- compact- If true only the upper triangular elements are set
- Returns:
- The R matrix.
 
- 
decomposeTo decompose the matrix 'A' it must have full rank. 'A' is a 'm' by 'n' matrix. It requires about 2n*m2-2m2/3 flops. The matrix provided here can be of different dimension than the one specified in the constructor. It just has to be smaller than or equal to it. - Specified by:
- decomposein interface- DecompositionInterface<FMatrixRMaj>
- Parameters:
- A- The matrix which is being decomposed. Modification is implementation dependent.
- Returns:
- Returns if it was able to decompose the matrix.
 
- 
inputModifiedpublic 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 interface- DecompositionInterface<FMatrixRMaj>
- Returns:
- true if the input matrix to decompose() is modified.
 
- 
householderprotected void householder(int j) Computes the householder vector "u" for the first column of submatrix j. Note this is a specialized householder for this problem. There is some protection against overflow and underflow. Q = I - γuuT This function finds the values of 'u' and 'γ'. - Parameters:
- j- Which submatrix to work off of.
 
- 
updateAprotected void updateA(int w) Takes the results from the householder computation and updates the 'A' matrix. 
 
 A = (I - γ*u*uT)A- Parameters:
- w- The submatrix.
 
- 
getGammaspublic float[] getGammas()
 
-