QR decomposition for {@link BlockMatrix64F} using householder reflectors. The decomposition isperformed by computing a QR decomposition for each block column as is normally done, see {@link org.ejml.alg.dense.decomposition.qr.QRDecompositionHouseholder}. The reflectors are then combined and applied to the remainder of the matrix. This process is repeated until all the block columns have been processed
The input matrix is modified and used to store the decomposition. Reflectors are stored in the lower triangle columns. The first element of the reflector is implicitly assumed to be one.
Each iteration can be sketched as follows:
QR_Decomposition( A(:,i-r to i) ) W=computeW( A(:,i-r to i) ) A(:,i:n) = (I + W*YT)TA(:,i:n)Where r is the block size, i is the submatrix being considered, A is the input matrix, Y is a matrix containing the reflectors just computed, and W is computed using {@link BlockHouseHolder#computeW_Column}.
Based upon "Block Householder QR Factorization" pg 255 in "Matrix Computations" 3rd Ed. 1996 by Gene H. Golub and Charles F. Van Loan.
@author Peter Abeles
|
|
|
|