.TH "laqz4" 3 "Sat Dec 9 2023 21:42:18" "Version 3.12.0" "LAPACK" \" -*- nroff -*- .ad l .nh .SH NAME laqz4 \- laqz4: step in ggev3, gges3 .SH SYNOPSIS .br .PP .SS "Functions" .in +1c .ti -1c .RI "subroutine \fBdlaqz4\fP (ilschur, ilq, ilz, n, ilo, ihi, nshifts, nblock_desired, sr, si, ss, a, lda, b, ldb, q, ldq, z, ldz, qc, ldqc, zc, ldzc, work, lwork, info)" .br .RI "\fBDLAQZ4\fP " .ti -1c .RI "subroutine \fBslaqz4\fP (ilschur, ilq, ilz, n, ilo, ihi, nshifts, nblock_desired, sr, si, ss, a, lda, b, ldb, q, ldq, z, ldz, qc, ldqc, zc, ldzc, work, lwork, info)" .br .RI "\fBSLAQZ4\fP " .in -1c .SH "Detailed Description" .PP .SH "Function Documentation" .PP .SS "subroutine dlaqz4 (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) nshifts, integer, intent(in) nblock_desired, double precision, dimension( * ), intent(inout) sr, double precision, dimension( * ), intent(inout) si, double precision, dimension( * ), intent(inout) ss, double precision, dimension( lda, * ), intent(inout) a, integer, intent(in) lda, double precision, dimension( ldb, * ), intent(inout) b, integer, intent(in) ldb, double precision, dimension( ldq, * ), intent(inout) q, integer, intent(in) ldq, double precision, dimension( ldz, * ), intent(inout) z, integer, intent(in) ldz, double precision, dimension( ldqc, * ), intent(inout) qc, integer, intent(in) ldqc, double precision, dimension( ldzc, * ), intent(inout) zc, integer, intent(in) ldzc, double precision, dimension( * ), intent(inout) work, integer, intent(in) lwork, integer, intent(out) info)" .PP \fBDLAQZ4\fP .PP \fBPurpose:\fP .RS 4 .PP .nf DLAQZ4 Executes a single multishift QZ sweep .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 .fi .PP .br \fINSHIFTS\fP .PP .nf NSHIFTS is INTEGER The desired number of shifts to use .fi .PP .br \fINBLOCK_DESIRED\fP .PP .nf NBLOCK_DESIRED is INTEGER The desired size of the computational windows .fi .PP .br \fISR\fP .PP .nf SR is DOUBLE PRECISION array\&. SR contains the real parts of the shifts to use\&. .fi .PP .br \fISI\fP .PP .nf SI is DOUBLE PRECISION array\&. SI contains the imaginary parts of the shifts to use\&. .fi .PP .br \fISS\fP .PP .nf SS is DOUBLE PRECISION array\&. SS contains the scale of the shifts to use\&. .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 the array A\&. LDA >= max( 1, N )\&. .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 the array B\&. LDB >= max( 1, N )\&. .fi .PP .br \fIQ\fP .PP .nf Q is DOUBLE PRECISION array, dimension (LDQ, N) .fi .PP .br \fILDQ\fP .PP .nf LDQ is INTEGER .fi .PP .br \fIZ\fP .PP .nf Z is DOUBLE PRECISION array, dimension (LDZ, N) .fi .PP .br \fILDZ\fP .PP .nf LDZ is INTEGER .fi .PP .br \fIQC\fP .PP .nf QC is DOUBLE PRECISION array, dimension (LDQC, NBLOCK_DESIRED) .fi .PP .br \fILDQC\fP .PP .nf LDQC is INTEGER .fi .PP .br \fIZC\fP .PP .nf ZC is DOUBLE PRECISION array, dimension (LDZC, NBLOCK_DESIRED) .fi .PP .br \fILDZC\fP .PP .nf LDZ is INTEGER .fi .PP .br \fIWORK\fP .PP .nf WORK is DOUBLE PRECISION 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 \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 .SS "subroutine slaqz4 (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) nshifts, integer, intent(in) nblock_desired, real, dimension( * ), intent(inout) sr, real, dimension( * ), intent(inout) si, real, dimension( * ), intent(inout) ss, real, dimension( lda, * ), intent(inout) a, integer, intent(in) lda, real, dimension( ldb, * ), intent(inout) b, integer, intent(in) ldb, real, dimension( ldq, * ), intent(inout) q, integer, intent(in) ldq, real, dimension( ldz, * ), intent(inout) z, integer, intent(in) ldz, real, dimension( ldqc, * ), intent(inout) qc, integer, intent(in) ldqc, real, dimension( ldzc, * ), intent(inout) zc, integer, intent(in) ldzc, real, dimension( * ), intent(inout) work, integer, intent(in) lwork, integer, intent(out) info)" .PP \fBSLAQZ4\fP .PP \fBPurpose:\fP .RS 4 .PP .nf SLAQZ4 Executes a single multishift QZ sweep .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 .fi .PP .br \fINSHIFTS\fP .PP .nf NSHIFTS is INTEGER The desired number of shifts to use .fi .PP .br \fINBLOCK_DESIRED\fP .PP .nf NBLOCK_DESIRED is INTEGER The desired size of the computational windows .fi .PP .br \fISR\fP .PP .nf SR is REAL array\&. SR contains the real parts of the shifts to use\&. .fi .PP .br \fISI\fP .PP .nf SI is REAL array\&. SI contains the imaginary parts of the shifts to use\&. .fi .PP .br \fISS\fP .PP .nf SS is REAL array\&. SS contains the scale of the shifts to use\&. .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 the array A\&. LDA >= max( 1, N )\&. .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 the array B\&. LDB >= max( 1, N )\&. .fi .PP .br \fIQ\fP .PP .nf Q is REAL array, dimension (LDQ, N) .fi .PP .br \fILDQ\fP .PP .nf LDQ is INTEGER .fi .PP .br \fIZ\fP .PP .nf Z is REAL array, dimension (LDZ, N) .fi .PP .br \fILDZ\fP .PP .nf LDZ is INTEGER .fi .PP .br \fIQC\fP .PP .nf QC is REAL array, dimension (LDQC, NBLOCK_DESIRED) .fi .PP .br \fILDQC\fP .PP .nf LDQC is INTEGER .fi .PP .br \fIZC\fP .PP .nf ZC is REAL array, dimension (LDZC, NBLOCK_DESIRED) .fi .PP .br \fILDZC\fP .PP .nf LDZ is INTEGER .fi .PP .br \fIWORK\fP .PP .nf WORK is REAL 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 \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\&.