DLAQPS(3)

NAME
DLAQPS - a step of QR factorization with column pivoting of a real M-by-N matrix A by using Blas-3

SYNOPSIS

SUBROUTINE DLAQPS(
    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 A( LDA, * ), AUXV( * ), F( LDF, * ), TAU( * ), VN1( * ), VN2( * )

PURPOSE
DLAQPS 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.

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) DOUBLE PRECISION 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) DOUBLE PRECISION 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) DOUBLE PRECISION array, dimension (NB)
    Auxiliar vector.

F       (input/output) DOUBLE PRECISION 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 by
  G. Quintana-Orti, Depto. de Informatica, Universidad Jaime I, Spain
  X. Sun, Computer Science Dept., Duke University, USA
Partial column norm updating strategy modified by
  Z. Drmac and Z. Bujanovic, Dept. of Mathematics,
  University of Zagreb, Croatia.
  June 2006.
For more details see LAPACK Working Note 176.