CHSEQR(3)
okay so this is CHSEQR(3), straight outta the Library Functions Manual β the file is chseqr.f(3) (header path vibes: /home/abui...RC/chseqr.f(3)). Buckle up bestie π
π NAME π
the NAME section is literally just this path, no cap:
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/chseqr.f
like, that's the whole name. just the file path. main character energy fr fr π
πΈ SYNOPSIS πΈ
β¨ Functions/Subroutines β¨
here's the subroutine tea π
subroutine CHSEQR (job, compz, n, ilo, ihi, h, ldh, w, z, ldz, work,
lwork, info)
CHSEQR
so yeah: one subroutine CHSEQR with all those args, and then CHSEQR again underneath. iconic π
π« Function/Subroutine Documentation π«
Okay so here's the exact call shape, bestie β every argument stays exactly where it belongs, no cap:
subroutine CHSEQR (character job, character compz, integer n, integer ilo,
integer ihi, complex, dimension( ldh, * ) h, integer ldh, complex,
dimension( * ) w, complex, dimension( ldz, * ) z, integer ldz, complex,
dimension( * ) work, integer lwork, integer info)
CHSEQR
π― Purpose π―
This icon 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 π§
Bestie, these are the inputs and outputs β every single one, in order:
JOBβ isCHARACTER*1.= 'E': compute eigenvalues only;= 'S': compute eigenvalues and the Schur formT.
COMPZβ isCHARACTER*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.
Nβ isINTEGER. The order of the matrixH.N >= 0.ILOβ isINTEGER. That's the whole line, bestie.IHIβ isINTEGER. It is assumed thatHis already upper triangular in rows and columns1:ILO-1andIHI+1:N.ILOandIHIare normally set by a previous call toCGEBAL, and then passed toZGEHRDwhen the matrix output byCGEBALis reduced to Hessenberg form. OtherwiseILOandIHIshould be set to1andNrespectively. IfN > 0, then1 <= ILO <= IHI <= N. IfN = 0, thenILO = 1andIHI = 0.Hβ isCOMPLEX array, dimension (LDH,N). On entry, the upper Hessenberg matrixH. On exit, ifINFO = 0andJOB = 'S',Hcontains the upper triangular matrixTfrom the Schur decomposition (the Schur form). IfINFO = 0andJOB = 'E', the contents ofHare unspecified on exit. (The output value ofHwhenINFO > 0is given under the description ofINFObelow.) Unlike earlier versions ofCHSEQR, this subroutine may explicitlyH(i,j) = 0fori > jandj = 1, 2, ... ILO-1orj = IHI+1, IHI+2, ... N.LDHβ isINTEGER. The leading dimension of the arrayH.LDH >= max(1,N).Wβ isCOMPLEX array, 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).Zβ isCOMPLEX array, dimension (LDZ,N). IfCOMPZ = 'N',Zis not referenced. IfCOMPZ = 'I', on entryZneed not be set and on exit, ifINFO = 0,Zcontains the unitary matrixZof the Schur vectors ofH. IfCOMPZ = '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. NormallyQis the unitary matrix generated byCUNGHRafter the call toCGEHRDwhich formed the Hessenberg matrixH. (The output value ofZwhenINFO > 0is given under the description ofINFObelow.)LDZβ isINTEGER. The leading dimension of the arrayZ. ifCOMPZ = 'I'orCOMPZ = 'V', thenLDZ >= MAX(1,N). Otherwise,LDZ >= 1.WORKβ isCOMPLEX array, dimension (LWORK). On exit, ifINFO = 0,WORK(1)returns an estimate of the optimal value forLWORK.LWORKβ isINTEGER. 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. IfLWORK = -1, thenCHSEQRdoes a workspace query. In this case,CHSEQRchecks 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β isINTEGER.= 0: successful exit.< 0: ifINFO = -i, thei-th argument had an illegal value.> 0: ifINFO = i,CHSEQRfailed 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(*) (initial value of H)*U = U*(final value of H)whereUis a unitary matrix. The final value ofHis upper Hessenberg and triangular in rows and columnsINFO+1throughIHI. - If
INFO > 0andCOMPZ = 'V', then on exit(final value of Z) = (initial value of Z)*UwhereUis the unitary matrix in(*)(regardless of the value ofJOB.) - If
INFO > 0andCOMPZ = 'I', then on exit(final value of Z) = UwhereUis the unitary matrix in(*)(regardless of the value ofJOB.) - If
INFO > 0andCOMPZ = 'N', thenZis not accessed.
- If
π 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,'CHSEQR',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β TheCLAHQRvsCLAQR0crossover 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
1... but less than30... the default isNS = 2(+) - greater than or equal to
30... but less than60... the default isNS = 4(+) - greater than or equal to
60... but less than150... the default isNS = 10(+) - greater than or equal to
150... but less than590... the default isNS = ** - greater than or equal to
590... but less than3000... the default isNS = 64 - greater than or equal to
3000... but less than6000... the default isNS = 128 - greater than or equal to
6000... but less thaninfinity... the default isNS = 256
(+) By default some or all matrices of this order are passed to the implicit double shift routine CLAHQR and this parameter is ignored. See ISPEC=12 above and comments in IPARMQ for details.
(**) The asterisks (**) indicate an ad-hoc function of N increasing from 10 to 64.
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 chseqr.f.
πΈ AUTHOR πΈ
okay so nobody actually sat down and wrote this page, bestie β not a single human typed it π it was generated automatically by Doxygen for LAPACK, straight from the source code. so like, the docs are literally built by the code, the code is the source of truth, iykyk π«Ά no cap, that's the whole author situation β¨
and that's a wrap on CHSEQR π go forth and triangularize your Hessenberg matrices, bestie, you're gonna slay it π
this page was brought to you by LAPACK, Version 3.12.0 π β pulled fresh from the source file /home/abui...RC/chseqr.f(3), auto-generated with love (and zero human hands) by Doxygen π see you in the next manpage, 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