SRC/dlahqr.f(3)
π NAME
SRC/dlahqr.f
okay so this page is SRC/dlahqr.f(3) from the LAPACK Library Functions Manual, and it's all about the dlahqr auxiliary routine, bestie. Buckle up. π
β¨ SYNOPSIS
π Functions/Subroutines
subroutine dlahqr (wantt, wantz, n, ilo, ihi, h, ldh, wr, wi, iloz,
ihiz, z, ldz, info)
DLAHQR computes the eigenvalues and Schur factorization of an upper Hessenberg matrix, using the double-shift/single-shift QR algorithm.
πΈ Function/Subroutine Documentation
subroutine dlahqr (logical wantt, logical wantz, integer n, integer ilo,
integer ihi, double precision, dimension( ldh, * ) h, integer ldh,
double precision, dimension( * ) wr, double precision, dimension( * )
wi, integer iloz, integer ihiz, double precision, dimension( ldz, * ) z,
integer ldz, integer info)
DLAHQR computes the eigenvalues and Schur factorization of an upper Hessenberg matrix, using the double-shift/single-shift QR algorithm.
π― Purpose
DLAHQR is an auxiliary routine called by DHSEQR to update the eigenvalues and Schur decomposition already computed by DHSEQR, by dealing with the Hessenberg submatrix in rows and columns ILO to IHI.
π§Έ Parameters
WANTTβWANTT is LOGICAL= .TRUE.: the full Schur formTis required;= .FALSE.: only eigenvalues are required.
WANTZβWANTZ is LOGICAL= .TRUE.: the matrix of Schur vectorsZis required;= .FALSE.: Schur vectors are not required.
NβN is INTEGER- The order of the matrix
H.N >= 0.
- The order of the matrix
ILOβILO is INTEGERIHIβIHI is INTEGER- It is assumed that
His already upper quasi-triangular in rows and columnsIHI+1:N, and thatH(ILO,ILO-1) = 0(unlessILO = 1). DLAHQRworks primarily with the Hessenberg submatrix in rows and columnsILOtoIHI, but applies transformations to all ofHifWANTTis.TRUE..1 <= ILO <= max(1,IHI); IHI <= N.
- It is assumed that
HβH is DOUBLE PRECISION array, dimension (LDH,N)- On entry, the upper Hessenberg matrix
H. - On exit, if
INFOis zero and ifWANTTis.TRUE.,His upper quasi-triangular in rows and columnsILO:IHI, with any 2-by-2 diagonal blocks in standard form. - If
INFOis zero andWANTTis.FALSE., the contents ofHare unspecified on exit. - The output state of
HifINFOis nonzero is given below under the description ofINFO.
- On entry, the upper Hessenberg matrix
LDHβLDH is INTEGER- The leading dimension of the array
H.LDH >= max(1,N).
- The leading dimension of the array
WRβWR is DOUBLE PRECISION array, dimension (N)WIβWI is DOUBLE PRECISION array, dimension (N)- The real and imaginary parts, respectively, of the computed eigenvalues
ILOtoIHIare stored in the corresponding elements ofWRandWI. - If two eigenvalues are computed as a complex conjugate pair, they are stored in consecutive elements of
WRandWI, say the i-th and (i+1)th, withWI(i) > 0andWI(i+1) < 0. - If
WANTTis.TRUE., the eigenvalues are stored in the same order as on the diagonal of the Schur form returned inH, withWR(i) = H(i,i), and, ifH(i:i+1,i:i+1)is a 2-by-2 diagonal block,WI(i) = sqrt(H(i+1,i)*H(i,i+1))andWI(i+1) = -WI(i).
- The real and imaginary parts, respectively, of the computed eigenvalues
ILOZβILOZ is INTEGERIHIZβIHIZ is INTEGER- Specify the rows of
Zto which transformations must be applied ifWANTZis.TRUE.. 1 <= ILOZ <= ILO; IHI <= IHIZ <= N.
- Specify the rows of
ZβZ is DOUBLE PRECISION array, dimension (LDZ,N)- If
WANTZis.TRUE., on entryZmust contain the current matrixZof transformations accumulated byDHSEQR, and on exitZhas been updated; transformations are applied only to the submatrixZ(ILOZ:IHIZ,ILO:IHI). - If
WANTZis.FALSE.,Zis not referenced.
- If
LDZβLDZ is INTEGER- The leading dimension of the array
Z.LDZ >= max(1,N).
- The leading dimension of the array
INFOβINFO is INTEGER= 0: successful exit> 0: IfINFO = i,DLAHQRfailed to compute all the eigenvaluesILOtoIHIin a total of 30 iterations per eigenvalue; elementsi+1:ihiofWRandWIcontain 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.)
- If
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
π Further Details
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
DLAHQRfrom LAPACK version 3.0. - It is (1) more robust against overflow and underflow and (2) adopts the more conservative Ahues & Tisseur stopping criterion (LAWN 122, 1997).
Definition at line 205 of file dlahqr.f.
π§ Author
Generated automatically by Doxygen for LAPACK from the source code.
π That's the whole page, bestie β LAPACK Version 3.12.0, SRC/dlahqr.f(3). Stay convergent. π
π¦ 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