SRC/dlaqz4.f(3)
Bestie, welcome to SRC/dlaqz4.f(3) from the Library Functions Manual โ yes, we're doing LAPACK subroutine documentation and we're doing it with glitter. โจ This page is giving main character energy, no cap. ๐ซถ
๐ธ NAME ๐ธ
SRC/dlaqz4.f โ that's the name. Short, iconic, and literally all it says. ๐
๐ SYNOPSIS ๐
Functions/Subroutines ๐ง
subroutine dlaqz4 (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)
DLAQZ4 โ the subroutine in question, being her usual iconic self. ๐
๐ซ Function/Subroutine Documentation ๐ซ
okay so here's the full signature with all the type/intent tea:
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)
DLAQZ4
๐ฏ Purpose ๐ฏ
DLAQZ4 executes a single multishift QZ sweep. That's the purpose, bestie โ one sweep, multishift style. ๐ฅ
๐ซถ Parameters ๐ซถ
Every parameter, every intent, every dimension โ nobody gets left out:
ILSCHURโlogical, intent(in).ILSCHUR is LOGICAL: determines whether or not to update the full Schur form. ๐ILQโlogical, intent(in).ILQ is LOGICAL: determines whether or not to update the matrixQ. ๐ซILZโlogical, intent(in).ILZ is LOGICAL: determines whether or not to update the matrixZ. ๐ฆNโinteger, intent(in).N is INTEGER: the order of the matricesA,B,Q, andZ.N >= 0. ๐ILOโinteger, intent(in).ILO is INTEGER. That's the whole description; she's being mysterious. ๐IHIโinteger, intent(in).IHI is INTEGER. Short and sweet. ๐NSHIFTSโinteger, intent(in).NSHIFTS is INTEGER: the desired number of shifts to use. โจNBLOCK_DESIREDโinteger, intent(in).NBLOCK_DESIRED is INTEGER: the desired size of the computational windows. ๐ชSRโdouble precision, dimension( * ), intent(inout).SR is DOUBLE PRECISION array.SRcontains the real parts of the shifts to use. ๐SIโdouble precision, dimension( * ), intent(inout).SI is DOUBLE PRECISION array.SIcontains the imaginary parts of the shifts to use. ๐ญSSโdouble precision, dimension( * ), intent(inout).SS is DOUBLE PRECISION array.SScontains the scale of the shifts to use. โ๏ธAโdouble precision, dimension( lda, * ), intent(inout).A is DOUBLE PRECISION array, dimension (LDA, N). ๐งฎLDAโinteger, intent(in).LDA is INTEGER: the leading dimension of the arrayA.LDA >= max( 1, N ). ๐Bโdouble precision, dimension( ldb, * ), intent(inout).B is DOUBLE PRECISION array, dimension (LDB, N). ๐งฎLDBโinteger, intent(in).LDB is INTEGER: the leading dimension of the arrayB.LDB >= max( 1, N ). ๐Qโdouble precision, dimension( ldq, * ), intent(inout).Q is DOUBLE PRECISION array, dimension (LDQ, N). ๐LDQโinteger, intent(in).LDQ is INTEGER. That's all she wrote. ๐Zโdouble precision, dimension( ldz, * ), intent(inout).Z is DOUBLE PRECISION array, dimension (LDZ, N). ๐LDZโinteger, intent(in).LDZ is INTEGER. No extra lore. ๐QCโdouble precision, dimension( ldqc, * ), intent(inout).QC is DOUBLE PRECISION array, dimension (LDQC, NBLOCK_DESIRED). ๐งLDQCโinteger, intent(in).LDQC is INTEGER. Yep. ๐ฆZCโdouble precision, dimension( ldzc, * ), intent(inout).ZC is DOUBLE PRECISION array, dimension (LDZC, NBLOCK_DESIRED). ๐ธLDZCโinteger, intent(in).LDZCis INTEGER โ and the source description literally saysLDZ is INTEGERhere, so I'm keeping that exact energy. ๐WORKโdouble precision, dimension( * ), intent(inout).WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)). On exit, ifINFO >= 0,WORK(1)returns the optimalLWORK. ๐ซงLWORKโinteger, intent(in).LWORK is INTEGER: the dimension of the arrayWORK.LWORK >= max(1,N).- If
LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of theWORKarray, returns this value as the first entry of theWORKarray, and no error message related toLWORKis issued byXERBLA. ๐
- If
INFOโinteger, intent(out).INFO is INTEGER:= 0: successful exit< 0: ifINFO = -i, thei-th argument had an illegal value
๐ Author ๐
Thijs Steel, KU Leuven. Slay. ๐
๐ Date ๐
May 2020. Vintage but still iconic. ๐
Definition at line 209 of file dlaqz4.f.
๐๏ธ Author ๐๏ธ
Generated automatically by Doxygen for LAPACK from the source code. ๐คโจ
okay bestie, that's the whole page. This was LAPACK Version 3.12.0, from SRC/dlaqz4.f(3), dated May 2020 โ mwah ๐โจ
๐ฆ where this page comes from
- arch rolling: lapack-doc 3.12.1-2 ยท custom
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms