ZLAQR4(3)
π ZLAQR4(3) π
okay bestie, welcome to ZLAQR4(3) from the Library Functions Manual β¨. This is the LAPACK page for the Hessenberg eigenvalue + optional Schur decomposition routine, and the source file path is literally /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zlaqr4.f. Cute. Slay. π
β¨ NAME β¨
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zlaqr4.f β yes, thatβs the whole NAME section: the path to the Fortran source. π
β¨ SYNOPSIS β¨
π Functions/Subroutines π
subroutine ZLAQR4 (wantt, wantz, n, ilo, ihi, h, ldh, w, iloz, ihiz, z,
ldz, work, lwork, info)
ZLAQR4 computes the eigenvalues of a Hessenberg matrix, and optionally the matrices from the Schur decomposition. π¦
β¨ Function/Subroutine Documentation β¨
subroutine ZLAQR4 (logical wantt, logical wantz, integer n, integer ilo,
integer ihi, complex*16, dimension( ldh, * ) h, integer ldh, complex*16,
dimension( * ) w, integer iloz, integer ihiz, complex*16, dimension(
ldz, * ) z, integer ldz, complex*16, dimension( * ) work, integer lwork,
integer info)
ZLAQR4 computes the eigenvalues of a Hessenberg matrix, and optionally the matrices from the Schur decomposition. π
π Purpose π
ZLAQR4 implements one level of recursion for ZLAQR0. It is a complete implementation of the small bulge multi-shift QR algorithm. It may be called by ZLAQR0 and, for large enough deflation window size, it may be called by ZLAQR3. This subroutine is identical to ZLAQR0 except that it calls ZLAQR2 instead of ZLAQR3. π
ZLAQR4 computes the eigenvalues of a Hessenberg matrix H and, optionally, the matrices T and Z from the Schur decomposition H = Z T Z**H, where T is an upper triangular matrix (the Schur form), and Z is the unitary matrix of Schur vectors.
Optionally Z may be postmultiplied into an input unitary matrix Q so that this routine can give the Schur factorization of a matrix A which has been reduced to the Hessenberg form H by the unitary matrix Q: A = Q*H*Q**H = (QZ)*H*(QZ)**H. π
π¦ Parameters π¦
WANTT(LOGICAL) β= .TRUE.: the full Schur formTis required;= .FALSE.: only eigenvalues are required.WANTZ(LOGICAL) β= .TRUE.: the matrix of Schur vectorsZis required;= .FALSE.: Schur vectors are not required.N(INTEGER) β the order of the matrixH.N >= 0.ILO(INTEGER) β just the type here, bestie. The constraint tea is underIHI.IHI(INTEGER) β it is assumed thatHis already upper triangular in rows and columns1:ILO-1andIHI+1:Nand, ifILO > 1,H(ILO,ILO-1)is zero.ILOandIHIare normally set by a previous call toZGEBAL, and then passed toZGEHRDwhen the matrix output byZGEBALis reduced to Hessenberg form. Otherwise,ILOandIHIshould be set to1andN, respectively. IfN > 0, then1 <= ILO <= IHI <= N. IfN = 0, thenILO = 1andIHI = 0.H(COMPLEX*16array, dimension(LDH,N)) β on entry, the upper Hessenberg matrixH. On exit, ifINFO = 0andWANTTis.TRUE., thenHcontains the upper triangular matrixTfrom the Schur decomposition (the Schur form). IfINFO = 0andWANTis.FALSE., then the contents ofHare unspecified on exit. (The output value ofHwhenINFO > 0is given under the description ofINFObelow.) This subroutine may explicitly setH(i,j) = 0fori > jandj = 1, 2, ... ILO-1orj = IHI+1, IHI+2, ... N.LDH(INTEGER) β the leading dimension of the arrayH.LDH >= max(1,N).W(COMPLEX*16array, dimension(N)) β the computed eigenvalues ofH(ILO:IHI,ILO:IHI)are stored inW(ILO:IHI). IfWANTTis.TRUE., then the eigenvalues are stored in the same order as on the diagonal of the Schur form returned inH, withW(i) = H(i,i).ILOZ(INTEGER) β just the type here too. πIHIZ(INTEGER) β specify the rows ofZto which transformations must be applied ifWANTZis.TRUE..1 <= ILOZ <= ILO; IHI <= IHIZ <= N.Z(COMPLEX*16array, dimension(LDZ,IHI)) β ifWANTZis.FALSE., thenZis not referenced. IfWANTZis.TRUE., thenZ(ILO:IHI,ILOZ:IHIZ)is replaced byZ(ILO:IHI,ILOZ:IHIZ)*UwhereUis the orthogonal Schur factor ofH(ILO:IHI,ILO:IHI). (The output value ofZwhenINFO > 0is given under the description ofINFObelow.)LDZ(INTEGER) β the leading dimension of the arrayZ. ifWANTZis.TRUE.thenLDZ >= MAX(1,IHIZ). Otherwise,LDZ >= 1.WORK(COMPLEX*16array, dimensionLWORK) β on exit, ifLWORK = -1,WORK(1)returns an estimate of the optimal value forLWORK.LWORK(INTEGER) β the dimension of the arrayWORK.LWORK >= max(1,N)is sufficient, butLWORKtypically as large as6*Nmay be required for optimal performance. A workspace query to determine the optimal workspace size is recommended. IfLWORK = -1, thenZLAQR4does a workspace query. In this case,ZLAQR4checks the input parameters and estimates the optimal workspace size for the given values ofN,ILOandIHI. The estimate is returned inWORK(1). No error message related toLWORKis issued byXERBLA. NeitherHnorZare accessed.INFO(INTEGER) β exit status tea:= 0: successful exit> 0: ifINFO = i,ZLAQR4failed to compute all of the eigenvalues. Elements1:ilo-1andi+1:nofWRandWIcontain those eigenvalues which have been successfully computed. (Failures are rare.)- If
INFO > 0andWANTis.FALSE., then on exit, the remaining unconverged eigenvalues are the eigenvalues of the upper Hessenberg matrix rows and columnsILOthroughINFOof the final, output value ofH. - If
INFO > 0andWANTTis.TRUE., then on exit
(*) (initial value of H)*U = U*(final value of H)
where U is a unitary matrix. The final value of H is upper Hessenberg and triangular in rows and columns INFO+1 through IHI.
- If
INFO > 0andWANTZis.TRUE., then on exit
(final value of Z(ILO:IHI,ILOZ:IHIZ)
= (initial value of Z(ILO:IHI,ILOZ:IHIZ)*U
where U is the unitary matrix in (*) (regardless of the value of WANTT.)
- If
INFO > 0andWANTZis.FALSE., thenZis not accessed.
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
πΈ Contributors: πΈ
Karen Braman and Ralph Byers, Department of Mathematics, University of Kansas, USA. π«Ά
π References: π
- K. Braman, R. Byers and R. Mathias, The Multi-Shift QR Algorithm Part I: Maintaining Well Focused Shifts, and Level 3 Performance, SIAM Journal of Matrix Analysis, volume 23, pages 929--947, 2002.
- K. Braman, R. Byers and R. Mathias, The Multi-Shift QR Algorithm Part II: Aggressive Early Deflation, SIAM Journal of Matrix Analysis, volume 23, pages 948--973, 2002.
Definition at line 245 of file zlaqr4.f. β
π Author (auto-generated) π
Generated automatically by Doxygen for LAPACK from the source code.
okay thatβs the whole page, bestie π. Signing off from LAPACK, Version 3.12.0, page path /home/abui...RC/zlaqr4.f(3). Mwah πβ¨
π¦ where this page comes from
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms