Function QR_update (o2scl_linalg)¶
-
template<class mat1_t, class mat2_t, class vec1_t, class vec2_t>
void o2scl_linalg::QR_update(size_t M, size_t N, mat1_t &Q, mat2_t &R, vec1_t &w, vec2_t &v)¶ Update a QR factorisation for A= Q R, A’ = A + u v^T,.
The parameters
M
andN
are the number of rows and columns of the matrixR
.* Q' R' = QR + u v^T * = Q (R + Q^T u v^T) * = Q (R + w v^T) * * where w = Q^T u. * * Algorithm from Golub and Van Loan, "Matrix Computations", Section * 12.5 (Updating Matrix Factorizations, Rank-One Changes)