?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 )

Include Files

  • mkl.fi

Description

The 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

DOUBLE COMPLEX 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

DOUBLE COMPLEX for zlaqps

Array, DIMENSION (nb). Auxiliary vector.

f

REAL for slaqps

DOUBLE PRECISION for dlaqps

COMPLEX for claqps

DOUBLE COMPLEX for zlaqps

Array, DIMENSION (ldf,nb). For real flavors, matrix FT = L*YT*A. For complex flavors, matrix FH = L*YH*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

DOUBLE COMPLEX 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.

For more complete information about compiler optimizations, see our Optimization Notice.