SRC/dlaqr0.f(3)
π NAME π
SRC/dlaqr0.f β okay bestie, this is the page for SRC/dlaqr0.f(3), living under the Library Functions Manual umbrella. We folded the manual-name situation right up here instead of copying the header line, because we're cute and efficient. β¨
π¦ SYNOPSIS π¦
Functions/Subroutines
subroutine dlaqr0 (wantt, wantz, n, ilo, ihi, h, ldh, wr, wi, iloz,
ihiz, z, ldz, work, lwork, info)
DLAQR0 computes the eigenvalues of a Hessenberg matrix, and optionally the matrices from the Schur decomposition. iconic behavior, no cap. π
π«Ά Function/Subroutine Documentation π«Ά
β subroutine dlaqr0 β
subroutine dlaqr0 (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, double precision, dimension( * ) work, integer lwork,
integer info)
DLAQR0 computes the eigenvalues of a Hessenberg matrix, and optionally the matrices from the Schur decomposition. Same facts, same energy, same main-character routine. π
π Purpose π
DLAQR0 computes the eigenvalues of a Hessenberg matrix H and, optionally, the matrices T and Z from the Schur decomposition H = Z T Z**T, where T is an upper quasi-triangular matrix (the Schur form), and Z is the orthogonal matrix of Schur vectors.
Optionally Z may be postmultiplied into an input orthogonal 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 orthogonal matrix Q: A = Q*H*Q**T = (QZ)*T*(QZ)**T. the math is mathing π§
πΈ Parameters πΈ
WANTTβWANTTisLOGICAL.= .TRUE.: the full Schur formTis required;= .FALSE.: only eigenvalues are required.WANTZβWANTZisLOGICAL.= .TRUE.: the matrix of Schur vectorsZis required;= .FALSE.: Schur vectors are not required.NβNisINTEGER. The order of the matrixH.N >= 0.ILOβILOisINTEGER.IHIβIHIisINTEGER. 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 toDGEBAL, and then passed toDGEHRDwhen the matrix output byDGEBALis reduced to Hessenberg form. Otherwise,ILOandIHIshould be set to1andN, respectively. IfN > 0, then1 <= ILO <= IHI <= N. IfN = 0, thenILO = 1andIHI = 0.HβHisDOUBLE PRECISIONarray, dimension(LDH,N). On entry, the upper Hessenberg matrixH. On exit, ifINFO = 0andWANTTis.TRUE., thenHcontains the upper quasi-triangular matrixTfrom the Schur decomposition (the Schur form); 2-by-2 diagonal blocks (corresponding to complex conjugate pairs of eigenvalues) are returned in standard form, withH(i,i) = H(i+1,i+1)andH(i+1,i)*H(i,i+1) < 0. IfINFO = 0andWANTTis.FALSE., then the contents ofHare unspecified on exit. (The output value ofHwhenINFO > 0is given under the description ofINFObelow.)
This subroutine may explicitly set H(i,j) = 0 for i > j and j = 1, 2, ... ILO-1 or j = IHI+1, IHI+2, ... N.
LDHβLDHisINTEGER. The leading dimension of the arrayH.LDH >= max(1,N).WRβWRisDOUBLE PRECISIONarray, dimension(IHI).WIβWIisDOUBLE PRECISIONarray, dimension(IHI). The real and imaginary parts, respectively, of the computed eigenvalues ofH(ILO:IHI,ILO:IHI)are stored inWR(ILO:IHI)andWI(ILO:IHI). If two eigenvalues are computed as a complex conjugate pair, they are stored in consecutive elements ofWRandWI, say the i-th and (i+1)th, withWI(i) > 0andWI(i+1) < 0. IfWANTTis.TRUE., then 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).ILOZβILOZisINTEGER.IHIZβIHIZisINTEGER. Specify the rows ofZto which transformations must be applied ifWANTZis.TRUE..1 <= ILOZ <= ILO; IHI <= IHIZ <= N.ZβZisDOUBLE PRECISIONarray, 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βLDZisINTEGER. The leading dimension of the arrayZ. ifWANTZis.TRUE.thenLDZ >= MAX(1,IHIZ). Otherwise,LDZ >= 1.WORKβWORKisDOUBLE PRECISIONarray, dimensionLWORK. On exit, ifLWORK = -1,WORK(1)returns an estimate of the optimal value forLWORK.LWORKβLWORKisINTEGER. 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.
If LWORK = -1, then DLAQR0 does a workspace query. In this case, DLAQR0 checks the input parameters and estimates the optimal workspace size for the given values of N, ILO and IHI. The estimate is returned in WORK(1). No error message related to LWORK is issued by XERBLA. Neither H nor Z are accessed.
INFOβINFOisINTEGER.= 0: successful exit> 0: ifINFO = i,DLAQR0failed to compute all of the eigenvalues. Elements1:ilo-1andi+1:nofWRandWIcontain those eigenvalues which have been successfully computed. (Failures are rare.)
If INFO > 0 and WANT is .FALSE., then on exit, the remaining unconverged eigenvalues are the eigen-values of the upper Hessenberg matrix rows and columns ILO through INFO of the final, output value of H.
If INFO > 0 and WANTT is .TRUE., then on exit
(*) (initial value of H)*U = U*(final value of H)
where U is an orthogonal matrix. The final value of H is upper Hessenberg and quasi-triangular in rows and columns INFO+1 through IHI.
If INFO > 0 and WANTZ is .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 orthogonal matrix in (*) (regard-less of the value of WANTT.)
If INFO > 0 and WANTZ is .FALSE., then Z is not accessed.
π Contributors π
Karen Braman and Ralph Byers, Department of Mathematics, University of Kansas, USA. academic icons π
π 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.
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 254 of file dlaqr0.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
Okay that's the whole page, bestie. Footer vibe check: LAPACK Version 3.12.0, page SRC/dlaqr0.f(3) β that's the source/version stamp at the very end, and no separate date is listed in the footer, so we're not inventing one. π
β¨
π¦ 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