LAQZ3 - 5.2 English - 68552

AOCL API Guide (68552)

Document ID
68552
Release Date
2025-12-29
Version
5.2 English
template<typename T>
void laqz3(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 *alphar, T *alphai, T *beta, T *qc, integer *ldqc, T *zc, integer *ldzc, T *work, integer *lwork, integer *rec, integer *info)#

LAQZ3 performs AED.

Purpose:

   LAQZ3 performs AED
Parameters:
  • ILSCHUR[in]

    ILSCHUR is LOGICAL

    Determines whether or not to update the full Schur form

  • 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

  • N[in]

    N is INTEGER

    The order of the matrices A, B, Q, and Z. N >= 0.

  • ILO[in] ILO is INTEGER

  • IHI[in]

    IHI is INTEGER

    ILO and IHI mark the rows and columns of (A,B) which are to be normalized

  • NW[in]

    NW is INTEGER

    The desired size of the deflation window.

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

  • LDA[in]

    LDA is INTEGER

    The leading dimension of the array A. LDA >= fla_max( 1, N ).

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

  • LDB[in]

    LDB is INTEGER

    The leading dimension of the array B. LDB >= fla_max( 1, N ).

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

  • LDQ[in] LDQ is INTEGER

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

  • LDZ[in] LDZ is INTEGER

  • NS[out]

    NS is INTEGER

    The number of unconverged eigenvalues available to use as shifts.

  • ND[out]

    ND is INTEGER

    The number of converged eigenvalues found.

  • ALPHAR[out]

    ALPHAR is REAL array, dimension (N)

    The real parts of each scalar alpha defining an eigenvalue of GNEP.

  • ALPHAI[out]

    ALPHAI is REAL array, dimension (N)

    The imaginary parts of each scalar alpha defining an eigenvalue of GNEP.

    If ALPHAI(j) is zero, then the j-th eigenvalue is real; if positive, then the j-th and (j+1)-st eigenvalues are a complex conjugate pair, with ALPHAI(j+1) = -ALPHAI(j).
  • BETA[out]

    BETA is REAL array, dimension (N)

    The scalars beta that define the eigenvalues of GNEP.

    Together, the quantities alpha = (ALPHAR(j),ALPHAI(j)) and beta = BETA(j) represent the j-th eigenvalue of the matrix pair (A,B), in one of the forms lambda = alpha/beta or mu = beta/alpha. Since either lambda or mu may overflow, they should not, in general, be computed.
  • QC[inout] QC is REAL array, dimension (LDQC, NW)

  • LDQC[in] LDQC is INTEGER

  • ZC[inout] ZC is REAL array, dimension (LDZC, NW)

  • LDZ[in] LDZ is INTEGER

  • WORK[out]

    WORK is REAL array, dimension (MAX(1,LWORK))

    On exit, if INFO >= 0, WORK(1) returns the optimal LWORK.

  • LWORK[in]

    LWORK is INTEGER

    The dimension of the array WORK. LWORK >= fla_max(1,N).

    If LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of the WORK array, returns this value as the first entry of the WORK array, and no error message related to LWORK is issued by XERBLA.
  • REC[in]

    REC is INTEGER

    REC indicates the current recursion level. Should be set to 0 on first call.

  • INFO[out]

    INFO is INTEGER

    = 0: successful exit

    < 0: if INFO = -i, the i-th argument had an illegal value
template<typename T>
void laqz3(logical *ilschur, logical *ilq, logical *ilz, integer *n, integer *ilo, integer *ihi, integer *nshifts, integer *nblock_desired, T *alpha, T *beta, T *a, integer *lda, T *b, integer *ldb, T *q, integer *ldq, T *z, integer *ldz, T *qc, integer *ldqc, T *zc, integer *ldzc, T *work, integer *lwork, integer *info)#