LAQPS - 5.2 English - 68552

AOCL API Guide (68552)

Document ID
68552
Release Date
2025-12-29
Version
5.2 English
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).

template<typename T, typename Ta>
void laqps(integer *m, integer *n, integer *offset, integer *nb, integer *kb, T *a, integer *lda, integer *jpvt, T *tau, Ta *vn1, Ta *vn2, T *auxv, T *f, integer *ldf)#