LAQZ2 - 5.2 English - 68552

AOCL API Guide (68552)

Document ID
68552
Release Date
2025-12-29
Version
5.2 English
template<typename T>
void laqz2(logical *ilq, logical *ilz, integer *k, integer *istartm, integer *istopm, integer *ihi, T *a, integer *lda, T *b, integer *ldb, integer *nq, integer *qstart, T *q, integer *ldq, integer *nz, integer *zstart, T *z, integer *ldz)#

LAQZ2 chases a 2x2 shift bulge in a matrix pencil down a single position.

Purpose:

 LAQZ2 chases a 2x2 shift bulge in a matrix pencil down a single position
Parameters:
  • ILQ[in]

    ILQ is LOGICAL

    Determines whether or not to update the matrix Q

  • ILZ[in]

    ILZ is LOGICAL

    Determines whether or not to update the matrix Z

  • K[in]

    K is INTEGER

    Index indicating the position of the bulge.

    On entry, the bulge is located in (A(k+1:k+2,k:k+1),B(k+1:k+2,k:k+1)).

    On exit, the bulge is located in (A(k+2:k+3,k+1:k+2),B(k+2:k+3,k+1:k+2)).

  • ISTARTM[in] ISTARTM is INTEGER

  • ISTOPM[in]

    ISTOPM is INTEGER

    Updates to (A,B) are restricted to (istartm:k+3,k:istopm). It is assumed without checking that istartm <= k+1 and k+2 <= istopm

  • IHI[in] IHI is INTEGER

  • A[inout] A is REAL array, dimension (LDA,N)

  • LDA[in]

    LDA is INTEGER

    The leading dimension of A as declared in the calling procedure.

  • B[inout] B is REAL array, dimension (LDB,N)

  • LDB[in]

    LDB is INTEGER

    The leading dimension of B as declared in the calling procedure.

  • NQ[in]

    NQ is INTEGER

    The order of the matrix Q

  • QSTART[in]

    QSTART is INTEGER

    Start index of the matrix Q. Rotations are applied To columns k+2-qStart:k+4-qStart of Q.

  • Q[inout] Q is REAL array, dimension (LDQ,NQ)

  • LDQ[in]

    LDQ is INTEGER

    The leading dimension of Q as declared in the calling procedure.

  • NZ[in]

    NZ is INTEGER

    The order of the matrix Z

  • ZSTART[in]

    ZSTART is INTEGER

    Start index of the matrix Z. Rotations are applied To columns k+1-qStart:k+3-qStart of Z.

  • Z[inout] Z is REAL array, dimension (LDZ,NZ)

  • LDZ[in]

    LDZ is INTEGER

    The leading dimension of Q as declared in the calling procedure.

template<typename T, typename Ta>
void laqz2(logical *ilschur, logical *ilq, logical *ilz, integer *n, integer *ilo, integer *ihi, integer *nw, T *a, integer *lda, T *b, integer *ldb, T *q, integer *ldq, T *z, integer *ldz, integer *ns, integer *nd, T *alpha, T *beta, T *qc, integer *ldqc, T *zc, integer *ldzc, T *work, integer *lwork, float *rwork, integer *rec, integer *info)#