# ?laqps

Computes a step of QR factorization with column pivoting of a real m-by-n matrix A by using BLAS level 3.

## Syntax

call slaqps( m, n, offset, nb, kb, a, lda, jpvt, tau, vn1, vn2, auxv, f, ldf )

call dlaqps( m, n, offset, nb, kb, a, lda, jpvt, tau, vn1, vn2, auxv, f, ldf )

call claqps( m, n, offset, nb, kb, a, lda, jpvt, tau, vn1, vn2, auxv, f, ldf )

call zlaqps( m, n, offset, nb, kb, a, lda, jpvt, tau, vn1, vn2, auxv, f, ldf )

## Description

This routine computes a step of QR factorization with column pivoting of a real m-by-n matrix A by using BLAS level 3. The routine tries to factorize NB columns from A starting from the row offset+1, and updates all of the matrix with BLAS level 3 routine ?gemm.

In some cases, due to catastrophic cancellations, ?laqps 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.

## Input Parameters

m

  INTEGER. The number of rows of the matrix A. `m ≥ 0`.

n

  INTEGER. The number of columns of the matrix A. `n ≥ 0`.

offset

  INTEGER. The number of rows of A that have been factorized in previous steps.

nb

  INTEGER. The number of columns to factorize.

a

  REAL for slaqps

  DOUBLE PRECISION for dlaqps

  COMPLEX for claqps

  COMPLEX*16 for zlaqps

  Array, DIMENSION (lda,n).

  On entry, the m-by-n matrix A.

lda

  INTEGER. The leading dimension of the array a.

  `lda ≥ max(1,m)`.

jpvt

  INTEGER. Array, DIMENSION (n).

  If jpvt(I) = k then column k of the full matrix A has been permuted into position i in AP.

vn1, vn2

  REAL for slaqps/claqps

  DOUBLE PRECISION for dlaqps/zlaqps

  Arrays, DIMENSION (n) each. Contain the vectors with the partial and exact column norms, respectively.

auxv

  REAL for slaqps

  DOUBLE PRECISION for dlaqps

  COMPLEX for claqps

  COMPLEX*16 for zlaqps

  Array, DIMENSION (nb). Auxiliary vector.

f

  REAL for slaqps

  DOUBLE PRECISION for dlaqps

  COMPLEX for claqps

  COMPLEX*16 for zlaqps

  Array, DIMENSION (ldf,nb). Matrix F' = L*Y'*A.

ldf

  INTEGER. The leading dimension of the array f.

  `ldf ≥ max(1,n)`.

## Output Parameters

kb

  INTEGER. The number of columns actually factorized.

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.

jpvt

  INTEGER array, DIMENSION (n). If `jpvt(I) = k` then column k of the full matrix A has been permuted into position i in AP.

tau

  REAL for slaqps

  DOUBLE PRECISION for dlaqps

  COMPLEX for claqps

  COMPLEX*16 for zlaqps

  Array, DIMENSION (kb). The scalar factors of the elementary reflectors.

vn1, vn2

  The vectors with the partial and exact column norms, respectively.

auxv

  Auxiliary vector.

f

  Matrix F' = L*Y'*A.

Parent topic: Auxiliary Routines