I have a matrix A with a QR decomposition in LAPACK compact form as generated from dgeqrf. Now I delete a column block or a set of column blocks from A and would like to update its QR. For this I can use the algorithm and delcols routine pointed to from the link http://www.maths.manchester.ac.uk/~clucas/updating/ though the algorithm needs extending for the case where I need deleting a _set_ of column blocks in one go. The extended QR factorization update can be stored and applied separately from the main QR factorization (i.e. I have to bookkeep the update).
My problem is that the iterative algorithm I am implementing mutates the matrix A continuously and "sandwiches" append column (append one column at the end ... cheap) and delete sets of column block updates one after the other. So the proposed solution above doesn't work because updating the QR factorization and re-updating the deleted columns quickly becomes unmanageable. I need to investigate whether I can efficiently sandwich the continuos updates.
For simplicity, is there a function that takes an old QR that is valid up to QR(:,k) and computes the remaining block QR(:,k+1:n) as dgeqrf would normally do? that's exactly what I need ... I can do this manually as a sequence of (n - k) LAPACKE_dormqr and dlarfp calls but this feels like inefficiently reimplementing dgeqrf.
Can anyone advice please? TIA, Best regards, Giovanni