function X = basicqr_apply_qt (QRdata, X) [M, N] = size(QRdata.QR); if size(X,1) ~= M, error(sprintf("matrix must be conformal with QR, leading dimension %d",M)); endif for j = 1:min(M,N), h=[1;QRdata.QR(j+1:M,j)]; X(j:M,:) -= QRdata.tau(j)*h*h'*X(j:M,:); endfor endfunction