.TH "laqz2" 3 "Sat Dec 9 2023 21:42:18" "Version 3.12.0" "LAPACK" \" -*- nroff -*- .ad l .nh .SH NAME laqz2 \- laqz2: step in ggev3, gges3 .SH SYNOPSIS .br .PP .SS "Functions" .in +1c .ti -1c .RI "recursive subroutine \fBclaqz2\fP (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)" .br .RI "\fBCLAQZ2\fP " .ti -1c .RI "subroutine \fBdlaqz2\fP (ilq, ilz, k, istartm, istopm, ihi, a, lda, b, ldb, nq, qstart, q, ldq, nz, zstart, z, ldz)" .br .RI "\fBDLAQZ2\fP " .ti -1c .RI "subroutine \fBslaqz2\fP (ilq, ilz, k, istartm, istopm, ihi, a, lda, b, ldb, nq, qstart, q, ldq, nz, zstart, z, ldz)" .br .RI "\fBSLAQZ2\fP " .ti -1c .RI "recursive subroutine \fBzlaqz2\fP (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)" .br .RI "\fBZLAQZ2\fP " .in -1c .SH "Detailed Description" .PP .SH "Function Documentation" .PP .SS "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)" .PP \fBCLAQZ2\fP .PP \fBPurpose:\fP .RS 4 .PP .nf CLAQZ2 performs AED .fi .PP .RE .PP \fBParameters\fP .RS 4 \fIILSCHUR\fP .PP .nf ILSCHUR is LOGICAL Determines whether or not to update the full Schur form .fi .PP .br \fIILQ\fP .PP .nf ILQ is LOGICAL Determines whether or not to update the matrix Q .fi .PP .br \fIILZ\fP .PP .nf ILZ is LOGICAL Determines whether or not to update the matrix Z .fi .PP .br \fIN\fP .PP .nf N is INTEGER The order of the matrices A, B, Q, and Z\&. N >= 0\&. .fi .PP .br \fIILO\fP .PP .nf ILO is INTEGER .fi .PP .br \fIIHI\fP .PP .nf IHI is INTEGER ILO and IHI mark the rows and columns of (A,B) which are to be normalized .fi .PP .br \fINW\fP .PP .nf NW is INTEGER The desired size of the deflation window\&. .fi .PP .br \fIA\fP .PP .nf A is COMPLEX array, dimension (LDA, N) .fi .PP .br \fILDA\fP .PP .nf LDA is INTEGER The leading dimension of the array A\&. LDA >= max( 1, N )\&. .fi .PP .br \fIB\fP .PP .nf B is COMPLEX array, dimension (LDB, N) .fi .PP .br \fILDB\fP .PP .nf LDB is INTEGER The leading dimension of the array B\&. LDB >= max( 1, N )\&. .fi .PP .br \fIQ\fP .PP .nf Q is COMPLEX array, dimension (LDQ, N) .fi .PP .br \fILDQ\fP .PP .nf LDQ is INTEGER .fi .PP .br \fIZ\fP .PP .nf Z is COMPLEX array, dimension (LDZ, N) .fi .PP .br \fILDZ\fP .PP .nf LDZ is INTEGER .fi .PP .br \fINS\fP .PP .nf NS is INTEGER The number of unconverged eigenvalues available to use as shifts\&. .fi .PP .br \fIND\fP .PP .nf ND is INTEGER The number of converged eigenvalues found\&. .fi .PP .br \fIALPHA\fP .PP .nf ALPHA is COMPLEX array, dimension (N) Each scalar alpha defining an eigenvalue of GNEP\&. .fi .PP .br \fIBETA\fP .PP .nf BETA is 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\&. Since either lambda or mu may overflow, they should not, in general, be computed\&. .fi .PP .br \fIQC\fP .PP .nf QC is COMPLEX array, dimension (LDQC, NW) .fi .PP .br \fILDQC\fP .PP .nf LDQC is INTEGER .fi .PP .br \fIZC\fP .PP .nf ZC is COMPLEX array, dimension (LDZC, NW) .fi .PP .br \fILDZC\fP .PP .nf LDZ is INTEGER .fi .PP .br \fIWORK\fP .PP .nf WORK is COMPLEX array, dimension (MAX(1,LWORK)) On exit, if INFO >= 0, WORK(1) returns the optimal LWORK\&. .fi .PP .br \fILWORK\fP .PP .nf LWORK is 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\&. .fi .PP .br \fIRWORK\fP .PP .nf RWORK is REAL array, dimension (N) .fi .PP .br \fIREC\fP .PP .nf REC is INTEGER REC indicates the current recursion level\&. Should be set to 0 on first call\&. .fi .PP .br \fIINFO\fP .PP .nf INFO is INTEGER = 0: successful exit < 0: if INFO = -i, the i-th argument had an illegal value .fi .PP .RE .PP \fBAuthor\fP .RS 4 Thijs Steel, KU Leuven, KU Leuven .RE .PP \fBDate\fP .RS 4 May 2020 .RE .PP .SS "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)" .PP \fBDLAQZ2\fP .PP \fBPurpose:\fP .RS 4 .PP .nf DLAQZ2 chases a 2x2 shift bulge in a matrix pencil down a single position .fi .PP .RE .PP \fBParameters\fP .RS 4 \fIILQ\fP .PP .nf ILQ is LOGICAL Determines whether or not to update the matrix Q .fi .PP .br \fIILZ\fP .PP .nf ILZ is LOGICAL Determines whether or not to update the matrix Z .fi .PP .br \fIK\fP .PP .nf 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))\&. .fi .PP .br \fIISTARTM\fP .PP .nf ISTARTM is INTEGER .fi .PP .br \fIISTOPM\fP .PP .nf 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 .fi .PP .br \fIIHI\fP .PP .nf IHI is INTEGER .fi .PP .br \fIA\fP .PP .nf A is DOUBLE PRECISION array, dimension (LDA,N) .fi .PP .br \fILDA\fP .PP .nf LDA is INTEGER The leading dimension of A as declared in the calling procedure\&. .fi .PP .br \fIB\fP .PP .nf B is DOUBLE PRECISION array, dimension (LDB,N) .fi .PP .br \fILDB\fP .PP .nf LDB is INTEGER The leading dimension of B as declared in the calling procedure\&. .fi .PP .br \fINQ\fP .PP .nf NQ is INTEGER The order of the matrix Q .fi .PP .br \fIQSTART\fP .PP .nf QSTART is INTEGER Start index of the matrix Q\&. Rotations are applied To columns k+2-qStart:k+4-qStart of Q\&. .fi .PP .br \fIQ\fP .PP .nf Q is DOUBLE PRECISION array, dimension (LDQ,NQ) .fi .PP .br \fILDQ\fP .PP .nf LDQ is INTEGER The leading dimension of Q as declared in the calling procedure\&. .fi .PP .br \fINZ\fP .PP .nf NZ is INTEGER The order of the matrix Z .fi .PP .br \fIZSTART\fP .PP .nf ZSTART is INTEGER Start index of the matrix Z\&. Rotations are applied To columns k+1-qStart:k+3-qStart of Z\&. .fi .PP .br \fIZ\fP .PP .nf Z is DOUBLE PRECISION array, dimension (LDZ,NZ) .fi .PP .br \fILDZ\fP .PP .nf LDZ is INTEGER The leading dimension of Q as declared in the calling procedure\&. .fi .PP .RE .PP \fBAuthor\fP .RS 4 Thijs Steel, KU Leuven .RE .PP \fBDate\fP .RS 4 May 2020 .RE .PP .SS "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)" .PP \fBSLAQZ2\fP .PP \fBPurpose:\fP .RS 4 .PP .nf SLAQZ2 chases a 2x2 shift bulge in a matrix pencil down a single position .fi .PP .RE .PP \fBParameters\fP .RS 4 \fIILQ\fP .PP .nf ILQ is LOGICAL Determines whether or not to update the matrix Q .fi .PP .br \fIILZ\fP .PP .nf ILZ is LOGICAL Determines whether or not to update the matrix Z .fi .PP .br \fIK\fP .PP .nf 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))\&. .fi .PP .br \fIISTARTM\fP .PP .nf ISTARTM is INTEGER .fi .PP .br \fIISTOPM\fP .PP .nf 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 .fi .PP .br \fIIHI\fP .PP .nf IHI is INTEGER .fi .PP .br \fIA\fP .PP .nf A is REAL array, dimension (LDA,N) .fi .PP .br \fILDA\fP .PP .nf LDA is INTEGER The leading dimension of A as declared in the calling procedure\&. .fi .PP .br \fIB\fP .PP .nf B is REAL array, dimension (LDB,N) .fi .PP .br \fILDB\fP .PP .nf LDB is INTEGER The leading dimension of B as declared in the calling procedure\&. .fi .PP .br \fINQ\fP .PP .nf NQ is INTEGER The order of the matrix Q .fi .PP .br \fIQSTART\fP .PP .nf QSTART is INTEGER Start index of the matrix Q\&. Rotations are applied To columns k+2-qStart:k+4-qStart of Q\&. .fi .PP .br \fIQ\fP .PP .nf Q is REAL array, dimension (LDQ,NQ) .fi .PP .br \fILDQ\fP .PP .nf LDQ is INTEGER The leading dimension of Q as declared in the calling procedure\&. .fi .PP .br \fINZ\fP .PP .nf NZ is INTEGER The order of the matrix Z .fi .PP .br \fIZSTART\fP .PP .nf ZSTART is INTEGER Start index of the matrix Z\&. Rotations are applied To columns k+1-qStart:k+3-qStart of Z\&. .fi .PP .br \fIZ\fP .PP .nf Z is REAL array, dimension (LDZ,NZ) .fi .PP .br \fILDZ\fP .PP .nf LDZ is INTEGER The leading dimension of Q as declared in the calling procedure\&. .fi .PP .RE .PP \fBAuthor\fP .RS 4 Thijs Steel, KU Leuven .RE .PP \fBDate\fP .RS 4 May 2020 .RE .PP .SS "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)" .PP \fBZLAQZ2\fP .PP \fBPurpose:\fP .RS 4 .PP .nf ZLAQZ2 performs AED .fi .PP .RE .PP \fBParameters\fP .RS 4 \fIILSCHUR\fP .PP .nf ILSCHUR is LOGICAL Determines whether or not to update the full Schur form .fi .PP .br \fIILQ\fP .PP .nf ILQ is LOGICAL Determines whether or not to update the matrix Q .fi .PP .br \fIILZ\fP .PP .nf ILZ is LOGICAL Determines whether or not to update the matrix Z .fi .PP .br \fIN\fP .PP .nf N is INTEGER The order of the matrices A, B, Q, and Z\&. N >= 0\&. .fi .PP .br \fIILO\fP .PP .nf ILO is INTEGER .fi .PP .br \fIIHI\fP .PP .nf IHI is INTEGER ILO and IHI mark the rows and columns of (A,B) which are to be normalized .fi .PP .br \fINW\fP .PP .nf NW is INTEGER The desired size of the deflation window\&. .fi .PP .br \fIA\fP .PP .nf A is COMPLEX*16 array, dimension (LDA, N) .fi .PP .br \fILDA\fP .PP .nf LDA is INTEGER The leading dimension of the array A\&. LDA >= max( 1, N )\&. .fi .PP .br \fIB\fP .PP .nf B is COMPLEX*16 array, dimension (LDB, N) .fi .PP .br \fILDB\fP .PP .nf LDB is INTEGER The leading dimension of the array B\&. LDB >= max( 1, N )\&. .fi .PP .br \fIQ\fP .PP .nf Q is COMPLEX*16 array, dimension (LDQ, N) .fi .PP .br \fILDQ\fP .PP .nf LDQ is INTEGER .fi .PP .br \fIZ\fP .PP .nf Z is COMPLEX*16 array, dimension (LDZ, N) .fi .PP .br \fILDZ\fP .PP .nf LDZ is INTEGER .fi .PP .br \fINS\fP .PP .nf NS is INTEGER The number of unconverged eigenvalues available to use as shifts\&. .fi .PP .br \fIND\fP .PP .nf ND is INTEGER The number of converged eigenvalues found\&. .fi .PP .br \fIALPHA\fP .PP .nf ALPHA is COMPLEX*16 array, dimension (N) Each scalar alpha defining an eigenvalue of GNEP\&. .fi .PP .br \fIBETA\fP .PP .nf BETA is 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\&. .fi .PP .br \fIQC\fP .PP .nf QC is COMPLEX*16 array, dimension (LDQC, NW) .fi .PP .br \fILDQC\fP .PP .nf LDQC is INTEGER .fi .PP .br \fIZC\fP .PP .nf ZC is COMPLEX*16 array, dimension (LDZC, NW) .fi .PP .br \fILDZC\fP .PP .nf LDZ is INTEGER .fi .PP .br \fIWORK\fP .PP .nf WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)) On exit, if INFO >= 0, WORK(1) returns the optimal LWORK\&. .fi .PP .br \fILWORK\fP .PP .nf LWORK is 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\&. .fi .PP .br \fIRWORK\fP .PP .nf RWORK is DOUBLE PRECISION array, dimension (N) .fi .PP .br \fIREC\fP .PP .nf REC is INTEGER REC indicates the current recursion level\&. Should be set to 0 on first call\&. .fi .PP .br \fIINFO\fP .PP .nf INFO is INTEGER = 0: successful exit < 0: if INFO = -i, the i-th argument had an illegal value .fi .PP .RE .PP \fBAuthor\fP .RS 4 Thijs Steel, KU Leuven .RE .PP \fBDate\fP .RS 4 May 2020 .RE .PP .SH "Author" .PP Generated automatically by Doxygen for LAPACK from the source code\&.