LAQZ1 - 5.2 English - 68552

AOCL API Guide (68552)

Document ID
68552
Release Date
2025-12-29
Version
5.2 English
template<typename T>
void laqz1(T *a, integer *lda, T *b, integer *ldb, T *sr1, T *sr2, T *si, T *beta1, T *beta2, T *v)#

Given a 3-by-3 matrix pencil (A,B), LAQZ1 sets v to a scalar multiple of the first column of the product.

Purpose:

 Given a 3-by-3 matrix pencil (A,B), LAQZ1 sets v to a
   scalar multiple of the first column of the product

   (*)  K = (A - (beta2*sr2 - i*si)*B)*B^(-1)*(beta1*A - (sr2 + i*si2)*B)*B^(-1).

   It is assumed that either

           1) sr1 = sr2
       or
           2) si = 0.

   This is useful for starting double implicit shift bulges
   in the QZ algorithm.
Parameters:
  • A[in]

    A is REAL array, dimension (LDA,N)

    The 3-by-3 matrix A in (*).

  • LDA[in]

    LDA is INTEGER

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

  • B[in]

    B is REAL array, dimension (LDB,N)

    The 3-by-3 matrix B in (*).

  • LDB[in]

    LDB is INTEGER

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

  • SR1[in] SR1 is REAL

  • SR2[in] SR2 is REAL

  • SI[in] SI is REAL

  • BETA1[in] BETA1 is REAL

  • BETA2[in] BETA2 is REAL

  • V[out]

    V is REAL array, dimension (N)

    A scalar multiple of the first column of the matrix K in (*).

template<typename T>
void laqz1(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)#