laqz2(3)

πŸ’– NAME πŸ’–

okay so bestie, this is <pink>laqz2(3)</pink> and she's here with the official name tea: laqz2 β€” laqz2: step in ggev3, gges3. That's the whole NAME line, no cap. ✨


🌸 SYNOPSIS 🌸

Functions

claqz2 β€” complex recursive subroutine energy:

recursive subroutine claqz2 (ilschur, ilq, ilz, n, ilo, ihi, nw, a, lda,
    b, ldb, q, ldq, z, ldz, ns, nd, alpha, beta, qc, ldqc, zc, ldzc,
    work, lwork, rwork, rec, info)
CLAQZ2

dlaqz2 β€” double precision subroutine:

subroutine dlaqz2 (ilq, ilz, k, istartm, istopm, ihi, a, lda, b, ldb,
    nq, qstart, q, ldq, nz, zstart, z, ldz)
DLAQZ2

slaqz2 β€” real subroutine:

subroutine slaqz2 (ilq, ilz, k, istartm, istopm, ihi, a, lda, b, ldb,
    nq, qstart, q, ldq, nz, zstart, z, ldz)
SLAQZ2

zlaqz2 β€” complex recursive subroutine:

recursive subroutine zlaqz2 (ilschur, ilq, ilz, n, ilo, ihi, nw, a, lda,
    b, ldb, q, ldq, z, ldz, ns, nd, alpha, beta, qc, ldqc, zc, ldzc,
    work, lwork, rwork, rec, info)
ZLAQZ2

πŸ¦‹ Detailed Description πŸ¦‹

The original just has this heading and then jumps straight into the function tea, bestie. No extra high-level paragraph here. πŸ’…


πŸ‘‘ Function Documentation πŸ‘‘

πŸ’… recursive subroutine claqz2 β€” CLAQZ2

recursive subroutine claqz2 (logical, intent(in) ilschur, logical,
    intent(in) ilq, logical, intent(in) ilz, integer, intent(in) n, integer,
    intent(in) ilo, integer, intent(in) ihi, integer, intent(in) nw,
    complex, dimension( lda, * ), intent(inout) a, integer, intent(in) lda,
    complex, dimension( ldb, * ), intent(inout) b, integer, intent(in) ldb,
    complex, dimension( ldq, * ), intent(inout) q, integer, intent(in) ldq,
    complex, dimension( ldz, * ), intent(inout) z, integer, intent(in) ldz,
    integer, intent(out) ns, integer, intent(out) nd, complex, dimension( *
    ), intent(inout) alpha, complex, dimension( * ), intent(inout) beta,
    complex, dimension( ldqc, * ) qc, integer, intent(in) ldqc, complex,
    dimension( ldzc, * ) zc, integer, intent(in) ldzc, complex, dimension( *
    ) work, integer, intent(in) lwork, real, dimension( * ) rwork, integer,
    intent(in) rec, integer, intent(out) info)
CLAQZ2

Purpose: CLAQZ2 performs AED. That's the whole sentence, bestie. ✨

Parameters:

  • ILSCHUR β€” LOGICAL. Determines whether or not to update the full Schur form. πŸŒ€
  • ILQ β€” LOGICAL. Determines whether or not to update the matrix Q.
  • ILZ β€” LOGICAL. Determines whether or not to update the matrix Z.
  • N β€” INTEGER. The order of the matrices A, B, Q, and Z. N >= 0.
  • ILO β€” INTEGER.
  • IHI β€” INTEGER. ILO and IHI mark the rows and columns of (A,B) which are to be normalized.
  • NW β€” INTEGER. The desired size of the deflation window.
  • A β€” COMPLEX array, dimension (LDA, N).
  • LDA β€” INTEGER. The leading dimension of the array A. LDA >= max( 1, N ).
  • B β€” COMPLEX array, dimension (LDB, N).
  • LDB β€” INTEGER. The leading dimension of the array B. LDB >= max( 1, N ).
  • Q β€” COMPLEX array, dimension (LDQ, N).
  • LDQ β€” INTEGER.
  • Z β€” COMPLEX array, dimension (LDZ, N).
  • LDZ β€” INTEGER.
  • NS β€” INTEGER. The number of unconverged eigenvalues available to use as shifts.
  • ND β€” INTEGER. The number of converged eigenvalues found.
  • ALPHA β€” COMPLEX array, dimension (N). Each scalar alpha defining an eigenvalue of GNEP.
  • BETA β€” COMPLEX array, dimension (N). The scalars beta that define the eigenvalues of GNEP. Together, the quantities alpha = ALPHA(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. Careful, bestie: since either lambda or mu may overflow, they should not, in general, be computed.
  • QC β€” COMPLEX array, dimension (LDQC, NW).
  • LDQC β€” INTEGER.
  • ZC β€” COMPLEX array, dimension (LDZC, NW).
  • LDZC β€” INTEGER. The doc literally says LDZ is INTEGER right here, so keep that exact energy. 🫢
  • WORK β€” COMPLEX array, dimension (MAX(1,LWORK)). On exit, if INFO >= 0, WORK(1) returns the optimal LWORK.
  • LWORK β€” INTEGER. The dimension of the array WORK. LWORK >= 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.
  • RWORK β€” REAL array, dimension (N).
  • REC β€” INTEGER. REC indicates the current recursion level. Should be set to 0 on first call.
  • INFO β€” INTEGER. = 0: successful exit. < 0: if INFO = -i, the i-th argument had an illegal value.

Author: Thijs Steel, KU Leuven, KU Leuven

Date: May 2020

Definition at line 231 of file claqz2.f.


πŸ’… subroutine dlaqz2 β€” DLAQZ2

subroutine dlaqz2 (logical, intent(in) ilq, logical, intent(in) ilz,
    integer, intent(in) k, integer, intent(in) istartm, integer, intent(in)
    istopm, integer, intent(in) ihi, double precision, dimension( lda, * )
    a, integer, intent(in) lda, double precision, dimension( ldb, * ) b,
    integer, intent(in) ldb, integer, intent(in) nq, integer, intent(in)
    qstart, double precision, dimension( ldq, * ) q, integer, intent(in)
    ldq, integer, intent(in) nz, integer, intent(in) zstart, double
    precision, dimension( ldz,                          * ) z, integer,
    intent(in) ldz)
DLAQZ2

Purpose: DLAQZ2 chases a 2x2 shift bulge in a matrix pencil down a single position. Periodt. πŸŒ€

Parameters:

  • ILQ β€” LOGICAL. Determines whether or not to update the matrix Q.
  • ILZ β€” LOGICAL. Determines whether or not to update the matrix Z.
  • K β€” 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 β€” INTEGER.
  • ISTOPM β€” INTEGER. Updates to (A,B) are restricted to (istartm:k+3,k:istopm). No cap, it assumes without checking that istartm <= k+1 and k+2 <= istopm.
  • IHI β€” INTEGER.
  • A β€” DOUBLE PRECISION array, dimension (LDA,N).
  • LDA β€” INTEGER. The leading dimension of A as declared in the calling procedure.
  • B β€” DOUBLE PRECISION array, dimension (LDB,N).
  • LDB β€” INTEGER. The leading dimension of B as declared in the calling procedure.
  • NQ β€” INTEGER. The order of the matrix Q.
  • QSTART β€” INTEGER. Start index of the matrix Q. Rotations are applied to columns k+2-qStart:k+4-qStart of Q.
  • Q β€” DOUBLE PRECISION array, dimension (LDQ,NQ).
  • LDQ β€” INTEGER. The leading dimension of Q as declared in the calling procedure.
  • NZ β€” INTEGER. The order of the matrix Z.
  • ZSTART β€” INTEGER. Start index of the matrix Z. Rotations are applied to columns k+1-qStart:k+3-qStart of Z.
  • Z β€” DOUBLE PRECISION array, dimension (LDZ,NZ).
  • LDZ β€” INTEGER. The leading dimension of Q as declared in the calling procedure. Yes, it says Q here β€” keep it exact, bestie. πŸ’€

Author: Thijs Steel, KU Leuven

Date: May 2020

Definition at line 172 of file dlaqz2.f.


πŸ’… subroutine slaqz2 β€” SLAQZ2

subroutine slaqz2 (logical, intent(in) ilq, logical, intent(in) ilz,
    integer, intent(in) k, integer, intent(in) istartm, integer, intent(in)
    istopm, integer, intent(in) ihi, real, dimension( lda, * ) a, integer,
    intent(in) lda, real, dimension( ldb, * ) b, integer, intent(in) ldb,
    integer, intent(in) nq, integer, intent(in) qstart, real, dimension(
    ldq, * ) q, integer, intent(in) ldq, integer, intent(in) nz, integer,
    intent(in) zstart, real, dimension( ldz, * ) z, integer, intent(in) ldz)
SLAQZ2

Purpose: SLAQZ2 chases a 2x2 shift bulge in a matrix pencil down a single position. That's the whole purpose, bestie. πŸ”₯

Parameters:

  • ILQ β€” LOGICAL. Determines whether or not to update the matrix Q.
  • ILZ β€” LOGICAL. Determines whether or not to update the matrix Z.
  • K β€” 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 β€” INTEGER.
  • ISTOPM β€” part 1 stops right here, bestie; the rest of this parameter and page rolls in part 2. πŸ’–
  • ISTOPM β€” INTEGER. Updates to (A,B) are restricted to (istartm:k+3,k:istopm). It's assumed β€” without checking β€” that istartm <= k+1 and k+2 <= istopm. So like… if that's not true, that's between you and the compiler bestie πŸ’€
  • IHI β€” INTEGER. That's it. That's the whole note. She's mysterious πŸŽ€
  • A β€” REAL array, dimension (LDA,N). iconic, no notes.
  • LDA β€” INTEGER. The leading dimension of A as declared in the calling procedure.
  • B β€” REAL array, dimension (LDB,N).
  • LDB β€” INTEGER. The leading dimension of B as declared in the calling procedure.
  • NQ β€” INTEGER. The order of the matrix Q.
  • QSTART β€” INTEGER. Start index of the matrix Q. Rotations are applied to columns k+2-qStart:k+4-qStart of Q. lowkey specific, we love that ✨
  • Q β€” REAL array, dimension (LDQ,NQ).
  • LDQ β€” INTEGER. The leading dimension of Q as declared in the calling procedure.
  • NZ β€” INTEGER. The order of the matrix Z.
  • ZSTART β€” INTEGER. Start index of the matrix Z. Rotations are applied to columns k+1-qStart:k+3-qStart of Z.
  • Z β€” REAL array, dimension (LDZ,NZ).
  • LDZ β€” INTEGER. "The leading dimension of Q as declared in the calling procedure." Yeah. It says Q. We are keeping it exactly like the source says it, do not come for me πŸ™ˆ

Author

Thijs Steel, KU Leuven 🫢

Date

May 2020 🌸

Definition

Definition at line 171 of file slaqz2.f.


Okay so now the complex twin shows up and she is long. Same energy, COMPLEX*16 everything, and the entire signature is a whole mood:

   recursive subroutine zlaqz2 (logical, intent(in) ilschur, logical,
       intent(in) ilq, logical, intent(in) ilz, integer, intent(in) n, integer,
       intent(in) ilo, integer, intent(in) ihi, integer, intent(in) nw,
       complex*16, dimension( lda, * ), intent(inout) a, integer, intent(in)
       lda, complex*16, dimension( ldb, * ), intent(inout) b, integer,
       intent(in) ldb, complex*16, dimension( ldq,         * ), intent(inout)
       q, integer, intent(in) ldq, complex*16, dimension( ldz, * ),
       intent(inout) z, integer, intent(in) ldz, integer, intent(out) ns,
       integer, intent(out) nd, complex*16, dimension( * ), intent(inout)
       alpha, complex*16, dimension( * ), intent(inout) beta, complex*16,
       dimension( ldqc, * ) qc, integer, intent(in) ldqc, complex*16,
       dimension( ldzc, * ) zc, integer, intent(in) ldzc, complex*16,
       dimension( * ) work, integer, intent(in) lwork, double precision,
       dimension( * ) rwork, integer, intent(in) rec, integer, intent(out)
       info)
       ZLAQZ2

Purpose

ZLAQZ2 performs AED πŸ’… like, that's the whole purpose statement, she's concise.

Parameters

  • ILSCHUR β€” LOGICAL. Determines whether or not to update the full Schur form.
  • ILQ β€” LOGICAL. Determines whether or not to update the matrix Q.
  • ILZ β€” LOGICAL. Determines whether or not to update the matrix Z.
  • N β€” INTEGER. The order of the matrices A, B, Q, and Z. N >= 0. (no cap, literally zero is allowed πŸ“)
  • ILO β€” INTEGER.
  • IHI β€” INTEGER. ILO and IHI mark the rows and columns of (A,B) which are to be normalized.
  • NW β€” INTEGER. The desired size of the deflation window. main character energy.
  • A β€” COMPLEX*16 array, dimension (LDA, N).
  • LDA β€” INTEGER. The leading dimension of the array A. LDA >= max( 1, N ).
  • B β€” COMPLEX*16 array, dimension (LDB, N).
  • LDB β€” INTEGER. The leading dimension of the array B. LDB >= max( 1, N ).
  • Q β€” COMPLEX*16 array, dimension (LDQ, N).
  • LDQ β€” INTEGER.
  • Z β€” COMPLEX*16 array, dimension (LDZ, N).
  • LDZ β€” INTEGER.
  • NS β€” INTEGER. The number of unconverged eigenvalues available to use as shifts.
  • ND β€” INTEGER. The number of converged eigenvalues found. slay ✨
  • ALPHA β€” COMPLEX*16 array, dimension (N). Each scalar alpha defining an eigenvalue of GNEP.
  • BETA β€” COMPLEX*16 array, dimension (N). The scalars beta that define the eigenvalues of GNEP. Together, the quantities alpha = ALPHA(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. 🫢 that last bit is a real warning, not a joke β€” do not compute them.
  • QC β€” COMPLEX*16 array, dimension (LDQC, NW).
  • LDQC β€” INTEGER.
  • ZC β€” COMPLEX*16 array, dimension (LDZC, NW).
  • LDZC β€” INTEGER. (and the description literally says "LDZ is INTEGER" β€” yes, LDZ. Not LDZC. We're preserving the typo like a museum piece πŸ™ˆ)
  • WORK β€” COMPLEX*16 array, dimension (MAX(1,LWORK)). On exit, if INFO >= 0, WORK(1) returns the optimal LWORK.
  • LWORK β€” INTEGER. The dimension of the array WORK. LWORK >= 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. πŸ‘‘ classic

  • RWORK β€” DOUBLE PRECISION array, dimension (N).
  • REC β€” INTEGER. REC indicates the current recursion level. Should be set to 0 on first call. seriously, set it to 0, first-call bestie πŸŽ€
  • INFO β€” INTEGER. = 0: successful exit. < 0: if INFO = -i, the i-th argument had an illegal value.

Author

Thijs Steel, KU Leuven 🫢

Date

May 2020 🌸

Definition

Definition at line 230 of file zlaqz2.f.

Author

Generated automatically by Doxygen for LAPACK from the source code. πŸ€–πŸ’–


okay that's the whole page!! go forth and deflate some eigenvalues bestie πŸ¦‹

and that's a wrap on laqz2(3) from LAPACK, Version 3.12.0, dated May 2020 β€” see u in the next manpage, mwah πŸ’œ

πŸ“¦ where this page comes from