-
template<typename T>
void laqps(integer *m, integer *n, integer *offset, integer *nb, integer *kb, T *a, integer *lda, integer *jpvt, T *tau, T *vn1, T *vn2, T *auxv, T *f, integer *ldf)# LAQPS computes a step of QR factorization with column pivoting of a real m-by-n matrix A by using BLAS level 3.
Purpose:
LAQPS computes a step of QR factorization with column pivoting of a real M-by-N matrix A by using Blas-3. It tries to factorize NB columns from A starting from the row OFFSET+1, and updates all of the matrix with Blas-3 xGEMM. In some cases, due to catastrophic cancellations, it cannot factorize NB columns. Hence, the actual number of factorized columns is returned in KB. Block A(1:OFFSET,1:N) is accordingly pivoted, but not factorized.
- Parameters:
M – [in]
M is INTEGER
The number of rows of the matrix A. M >= 0.
N – [in]
N is INTEGER
The number of columns of the matrix A. N >= 0
OFFSET – [in]
OFFSET is INTEGER
The number of rows of A that have been factorized in previous steps.
NB – [in]
NB is INTEGER
The number of columns to factorize.
KB – [out]
KB is INTEGER
The number of columns actually factorized.
A – [inout]
A is REAL array, dimension (LDA,N)
On entry, the M-by-N matrix A.
On exit, block A(OFFSET+1:M,1:KB) is the triangular factor obtained and block A(1:OFFSET,1:N) has been accordingly pivoted, but no factorized. The rest of the matrix, block A(OFFSET+1:M,KB+1:N) has been updated.LDA – [in]
LDA is INTEGER
The leading dimension of the array A. LDA >= fla_max(1,M).
JPVT – [inout]
JPVT is INTEGER array, dimension (N)
JPVT(I) = K <==> Column K of the full matrix A has been permuted into position I in AP.
TAU – [out]
TAU is REAL array, dimension (KB)
The scalar factors of the elementary reflectors.
VN1 – [inout]
VN1 is REAL array, dimension (N)
The vector with the partial column norms.
VN2 – [inout]
VN2 is REAL array, dimension (N)
The vector with the exact column norms.
AUXV – [inout]
AUXV is REAL array, dimension (NB)
Auxiliary vector.
F – [inout]
F is REAL array, dimension (LDF,NB)
Matrix F**T = L*Y**T*A.
LDF – [in]
LDF is INTEGER
The leading dimension of the array F. LDF >= fla_max(1,N).