Function QR_update (o2scl_linalg)

O2scl : Function List

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 and N are the number of rows and columns of the matrix R.

* 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)