ZHSEQR(3)
πΈ NAME πΈ
okay so bestie, the NAME section is literally this file path:
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zhseqr.f
that's it, no cap. It's the page for zhseqr.f(3) in the Library Functions Manual β very βsource file main character energyβ π
β¨
β¨ SYNOPSIS β¨
π¦ Functions/Subroutines π¦
subroutine ZHSEQRβ the whole function vibe check, with all its args laid out in the signature below π«Ά
subroutine ZHSEQR (job, compz, n, ilo, ihi, h, ldh, w, z, ldz, work,
lwork, info)
and that's the ZHSEQR subroutine, periodt π. The args showing up in the synopsis are job, compz, n, ilo, ihi, h, ldh, w, z, ldz, work, lwork, and info β literally all right there, no crumbs π.
π Function/Subroutine Documentation π
subroutine ZHSEQR (character job, character compz, integer n, integer ilo,
integer ihi, complex*16, dimension( ldh, * ) h, integer ldh, complex*16,
dimension( * ) w, complex*16, dimension( ldz, * ) z, integer ldz,
complex*16, dimension( * ) work, integer lwork, integer info)
ZHSEQR
β¨ Purpose β¨
Okay bestie, so ZHSEQR 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)*T*(QZ)**H
πΈ Parameters πΈ
JOBisCHARACTER*1:'E'β compute eigenvalues only.'S'β compute eigenvalues and the Schur formT.
COMPZisCHARACTER*1:'N'β no Schur vectors are computed.'I'βZis initialized to the unit matrix and the matrixZof Schur vectors ofHis returned.'V'βZmust contain a unitary matrixQon entry, and the productQ*Zis returned.
NisINTEGERβ the order of the matrixH.N >= 0.ILOisINTEGER.IHIisINTEGER:- It is assumed that
His already upper triangular in rows and columns1:ILO-1andIHI+1:N. ILOandIHIare normally set by a previous call toZGEBAL, and then passed toZGEHRDwhen the matrix output byZGEBALis reduced to Hessenberg form.- Otherwise
ILOandIHIshould be set to1andNrespectively. - If
N > 0, then1 <= ILO <= IHI <= N. - If
N = 0, thenILO = 1andIHI = 0.
- It is assumed that
HisCOMPLEX*16array, dimension(LDH,N):- On entry, the upper Hessenberg matrix
H. - On exit, if
INFO = 0andJOB = 'S',Hcontains the upper triangular matrixTfrom the Schur decomposition (the Schur form). - If
INFO = 0andJOB = 'E', the contents ofHare unspecified on exit. - (The output value of
HwhenINFO > 0is given under the description ofINFObelow.) - Unlike earlier versions of
ZHSEQR, this subroutine may explicitlyH(i,j) = 0fori > jandj = 1, 2, ... ILO-1orj = IHI+1, IHI+2, ... N.
- On entry, the upper Hessenberg matrix
LDHisINTEGERβ the leading dimension of the arrayH.LDH >= max(1,N).WisCOMPLEX*16array, dimension(N)β the computed eigenvalues. IfJOB = 'S', the eigenvalues are stored in the same order as on the diagonal of the Schur form returned inH, withW(i) = H(i,i).ZisCOMPLEX*16array, dimension(LDZ,N):- If
COMPZ = 'N',Zis not referenced. - If
COMPZ = 'I', on entryZneed not be set and on exit, ifINFO = 0,Zcontains the unitary matrixZof the Schur vectors ofH. - If
COMPZ = 'V', on entryZmust contain anN-by-NmatrixQ, which is assumed to be equal to the unit matrix except for the submatrixZ(ILO:IHI,ILO:IHI). On exit, ifINFO = 0,ZcontainsQ*Z. - Normally
Qis the unitary matrix generated byZUNGHRafter the call toZGEHRDwhich formed the Hessenberg matrixH. - (The output value of
ZwhenINFO > 0is given under the description ofINFObelow.)
- If
LDZisINTEGERβ the leading dimension of the arrayZ. IfCOMPZ = 'I'orCOMPZ = 'V', thenLDZ >= MAX(1,N). Otherwise,LDZ >= 1.WORKisCOMPLEX*16array, dimension(LWORK). On exit, ifINFO = 0,WORK(1)returns an estimate of the optimal value forLWORK.LWORKisINTEGERβ the dimension of the arrayWORK.LWORK >= max(1,N)is sufficient and delivers very good and sometimes optimal performance.- However,
LWORKas large as11*Nmay be required for optimal performance. - A workspace query is recommended to determine the optimal workspace size.
- If
LWORK = -1, thenZHSEQRdoes a workspace query. In this case,ZHSEQRchecks 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.
INFOisINTEGER:= 0: successful exit.< 0: ifINFO = -i, thei-th argument had an illegal value.> 0: ifINFO = i,ZHSEQRfailed to compute all of the eigenvalues. Elements1:ilo-1andi+1:nofWcontain those eigenvalues which have been successfully computed. (Failures are rare.)- If
INFO > 0andJOB = 'E', 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 > 0andJOB = 'S', then on exit
- If
(*) (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 > 0andCOMPZ = 'V', then on exit
(final value of Z) = (initial value of Z)*U
where U is the unitary matrix in (*) (regardless of the value of JOB.)
- If
INFO > 0andCOMPZ = 'I', then on exit
(final value of Z) = U
where U is the unitary matrix in (*) (regardless of the value of JOB.)
- If
INFO > 0andCOMPZ = 'N', 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
π₯ Further Details π₯
Default values supplied by
ILAENV(ISPEC,'ZHSEQR',JOB(:1)//COMPZ(:1),N,ILO,IHI,LWORK).
It is suggested that these defaults be adjusted in order to attain best performance in each particular computational environment.
ISPEC=12: TheZLAHQRvsZLAQR0crossover point. Default:75. (Must be at least11.)ISPEC=13: Recommended deflation window size. This depends onILO,IHIandNS.NSis the number of simultaneous shifts returned byILAENV(ISPEC=15). (SeeISPEC=15below.) The default for(IHI-ILO+1) <= 500isNS. The default for(IHI-ILO+1) > 500is3*NS/2.ISPEC=14: Nibble crossover point. (SeeIPARMQfor details.) Default:14%of deflation window size.ISPEC=15: Number of simultaneous shifts in a multishift QR iteration.
If IHI-ILO+1 is ...
- greater than or equal to
1but less than30β default isNS = 2(+) - greater than or equal to
30but less than60β default isNS = 4(+) - greater than or equal to
60but less than150β default isNS = 10(+) - greater than or equal to
150but less than590β default isNS = ** - greater than or equal to
590but less than3000β default isNS = 64 - greater than or equal to
3000but less than6000β default isNS = 128 - greater than or equal to
6000but less thaninfinityβ default isNS = 256 (+)By default some or all matrices of this order are passed to the implicit double shift routineZLAHQRand this parameter is ignored. SeeISPEC=12above and comments inIPARMQfor details.(**)The asterisks (**) indicate an ad-hoc function ofNincreasing from10to64.
ISPEC=16: Select structured matrix multiply. If the number of simultaneous shifts (specified byISPEC=15) is less than14, then the default forISPEC=16is0. Otherwise the default forISPEC=16is2.
π 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 297 of file zhseqr.f.
β¨ AUTHOR β¨
Okay so this page wasn't even written by a human bestie π β it was generated automatically by Doxygen for LAPACK from the source code. Like, the docs literally wrote themselves from the .f file. No cap, that's the whole author credit. The code is the author, iykyk π
And that's the whole page, bestie! π Go forth and call ZHSEQR with main character energy π
Source: /home/abui...RC/zhseqr.f(3) β straight from the LAPACK source code, generated by Doxygen. Version 3.12.0, LAPACK. π¦ Sending you off with a smooch and a successful workspace query π«Άπ
π¦ 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