SYNOPSIS
- SUBROUTINE ZLAQPS(
- M, N, OFFSET, NB, KB, A, LDA, JPVT, TAU, VN1, VN2, AUXV, F, LDF )
- INTEGER KB, LDA, LDF, M, N, NB, OFFSET
- INTEGER JPVT( * )
- DOUBLE PRECISION VN1( * ), VN2( * )
- COMPLEX*16 A( LDA, * ), AUXV( * ), F( LDF, * ), TAU( * )
PURPOSE
ZLAQPS computes a step of QR factorization with column pivoting of a complex 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.
ARGUMENTS
- M (input) INTEGER
- The number of rows of the matrix A. M >= 0.
- N (input) INTEGER
- The number of columns of the matrix A. N >= 0
- OFFSET (input) INTEGER
- The number of rows of A that have been factorized in previous steps.
- NB (input) INTEGER
- The number of columns to factorize.
- KB (output) INTEGER
- The number of columns actually factorized.
- A (input/output) COMPLEX*16 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 (input) INTEGER
- The leading dimension of the array A. LDA >= max(1,M).
- JPVT (input/output) INTEGER array, dimension (N)
- JPVT(I) = K <==> Column K of the full matrix A has been permuted into position I in AP.
- TAU (output) COMPLEX*16 array, dimension (KB)
- The scalar factors of the elementary reflectors.
- VN1 (input/output) DOUBLE PRECISION array, dimension (N)
- The vector with the partial column norms.
- VN2 (input/output) DOUBLE PRECISION array, dimension (N)
- The vector with the exact column norms.
- AUXV (input/output) COMPLEX*16 array, dimension (NB)
- Auxiliar vector.
- F (input/output) COMPLEX*16 array, dimension (LDF,NB)
- Matrix F' = L*Y'*A.
- LDF (input) INTEGER
- The leading dimension of the array F. LDF >= max(1,N).
FURTHER DETAILS
Based on contributions byG. Quintana-Orti, Depto. de Informatica, Universidad Jaime I, Spain
X. Sun, Computer Science Dept., Duke University, USA