SRC/zlahqr.f(3)
π SRC/zlahqr.f(3) β Library Functions Manual π
πΈ NAME
SRC/zlahqr.f β that's the file, bestie. This page lives in the Library Functions Manual section, and we're about to get into the QR algorithm of it all. β¨
π§ SYNOPSIS
π«Ά Functions/Subroutines
subroutine zlahqr (wantt, wantz, n, ilo, ihi, h, ldh, w, iloz, ihiz, z, ldz, info)βZLAHQRcomputes the eigenvalues and Schur factorization of an upper Hessenberg matrix, using the double-shift/single-shift QR algorithm. It's giving linear algebra main character energy, fr fr. π₯
π Function/Subroutine Documentation
π«Ά subroutine zlahqr
subroutine zlahqr (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, integer info)
ZLAHQR computes the eigenvalues and Schur factorization of an upper Hessenberg matrix, using the double-shift/single-shift QR algorithm. Slay. π
π― Purpose
ZLAHQR is an auxiliary routine called by CHSEQR to update the eigenvalues and Schur decomposition already computed by CHSEQR, by dealing with the Hessenberg submatrix in rows and columns ILO to IHI. It's the cleanup crew for that specific block, lowkey iconic. π«‘
π§Ύ Parameters
WANTTβWANTTisLOGICAL.= .TRUE.: the full Schur formTis required;= .FALSE.: only eigenvalues are required. Pick your fighter. βοΈWANTZβWANTZisLOGICAL.= .TRUE.: the matrix of Schur vectorsZis required;= .FALSE.: Schur vectors are not required. No extras, no stress. πNβNisINTEGER. The order of the matrixH.N >= 0. Simple as that, bestie. β¨ILOβILOisINTEGER. That's the whole note for this one. πIHIβIHIisINTEGER. It is assumed thatHis already upper triangular in rows and columnsIHI+1:N, and thatH(ILO,ILO-1) = 0(unlessILO = 1).ZLAHQRworks primarily with the Hessenberg submatrix in rows and columnsILOtoIHI, but applies transformations to all ofHifWANTTis.TRUE..1 <= ILO <= max(1,IHI); IHI <= N. Respect the bounds, periodt. πβ¨HβHisCOMPLEX*16array, dimension(LDH,N). On entry, the upper Hessenberg matrixH. On exit, ifINFOis zero and ifWANTTis.TRUE., thenHis upper triangular in rows and columnsILO:IHI. IfINFOis zero and ifWANTTis.FALSE., then the contents ofHare unspecified on exit. The output state ofHin caseINFis positive is below under the description ofINFO. (Yes, the page saysINFright there β I'm not fixing it, I'm just reporting it. π)LDHβLDHisINTEGER. The leading dimension of the arrayH.LDH >= max(1,N). Do not skip the max, bestie. πWβWisCOMPLEX*16array, dimension(N). The computed eigenvaluesILOtoIHIare stored in the corresponding elements ofW. IfWANTTis.TRUE., the eigenvalues are stored in the same order as on the diagonal of the Schur form returned inH, withW(i) = H(i,i). Cute little diagonal moment. πILOZβILOZisINTEGER. That's it, that's the note. πIHIZβIHIZisINTEGER. Specify the rows ofZto which transformations must be applied ifWANTZis.TRUE..1 <= ILOZ <= ILO; IHI <= IHIZ <= N. Boundaries are cute when they're respected. πΈZβZisCOMPLEX*16array, dimension(LDZ,N). IfWANTZis.TRUE., on entryZmust contain the current matrixZof transformations accumulated byCHSEQR, and on exitZhas been updated; transformations are applied only to the submatrixZ(ILOZ:IHIZ,ILO:IHI). IfWANTZis.FALSE.,Zis not referenced. It said what it said. πLDZβLDZisINTEGER. The leading dimension of the arrayZ.LDZ >= max(1,N). Same energy asLDH, different letter. β¨INFOβINFOisINTEGER.= 0: successful exit. We love a clean finish. π> 0: ifINFO = i,ZLAHQRfailed to compute all the eigenvaluesILOtoIHIin a total of 30 iterations per eigenvalue; elementsi+1:ihiofWcontain those eigenvalues which have been successfully computed.- If
INFO > 0andWANTTis.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)whereUis an orthogonal matrix. The final value ofHis upper Hessenberg and triangular in rows and columnsINFO+1throughIHI. - If
INFO > 0andWANTZis.TRUE., then on exit(final value of Z) = (initial value of Z)*UwhereUis the orthogonal matrix in(*)(regardless of the value ofWANTT.)
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
π§βπ¬ Contributors:
02-96Based on modifications by David Day, Sandia National Laboratory, USA12-04Further modifications by Ralph Byers, University of Kansas, USA- This is a modified version of
ZLAHQRfrom LAPACK version3.0. It is (1) more robust against overflow and underflow and (2) adopts the more conservative Ahues & Tisseur stopping criterion (LAWN 122, 1997).
π Definition
Definition at line 193 of file zlahqr.f.
π€ Author
Generated automatically by Doxygen for LAPACK from the source code.
xoxo, bestie π β this page's source/version/date footer says LAPACK Version 3.12.0 SRC/zlahqr.f(3), and that's the whole sign-off. 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