SRC/slaqr0.f(3)
SRC/slaqr0.f(3) π β¨
(from the Library Functions Manual β folded in near the top like a good bestie π«Ά)
NAME
SRC/slaqr0.f
SYNOPSIS
Functions/Subroutines
subroutine slaqr0 (wantt, wantz, n, ilo, ihi, h, ldh, wr, wi, iloz,
ihiz, z, ldz, work, lwork, info)
SLAQR0 computes the eigenvalues of a Hessenberg matrix, and optionally the matrices from the Schur decomposition.
Function/Subroutine Documentation
subroutine slaqr0
subroutine slaqr0 (logical wantt, logical wantz, integer n, integer ilo,
integer ihi, real, dimension( ldh, * ) h, integer ldh, real, dimension(
* ) wr, real, dimension( * ) wi, integer iloz, integer ihiz, real,
dimension( ldz, * ) z, integer ldz, real, dimension( * ) work, integer
lwork, integer info)
SLAQR0 computes the eigenvalues of a Hessenberg matrix, and optionally the matrices from the Schur decomposition.
Purpose:
Okay so SLAQR0 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. Iconic. π
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
Parameters
WANTTβ isLOGICAL.= .TRUE.: the full Schur formTis required;= .FALSE.: only eigenvalues are required.WANTZβ isLOGICAL.= .TRUE.: the matrix of Schur vectorsZis required;= .FALSE.: Schur vectors are not required.Nβ isINTEGER. The order of the matrixH.N >= 0.ILOβ isINTEGER.IHIβ isINTEGER. 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 toSGEBAL, and then passed toSGEHRDwhen the matrix output bySGEBALis reduced to Hessenberg form. Otherwise,ILOandIHIshould be set to1andN, respectively. IfN > 0, then1 <= ILO <= IHI <= N. IfN = 0, thenILO = 1andIHI = 0.Hβ isREAL array, 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-2diagonal 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 setH(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).WRβ isREAL array, dimension (IHI).WIβ isREAL array, 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 thei-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 a2-by-2diagonal block,WI(i) = sqrt(-H(i+1,i)*H(i,i+1))andWI(i+1) = -WI(i).ILOZβ isINTEGER.IHIZβ isINTEGER. Specify the rows ofZto which transformations must be applied ifWANTZis.TRUE..1 <= ILOZ <= ILO;IHI <= IHIZ <= N.Zβ isREAL array, 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β isINTEGER. The leading dimension of the arrayZ. ifWANTZis.TRUE.thenLDZ >= MAX(1,IHIZ). Otherwise,LDZ >= 1.WORKβ isREAL array, dimension LWORK. On exit, ifLWORK = -1,WORK(1)returns an estimate of the optimal value forLWORK.LWORKβ isINTEGER. 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. IfLWORK = -1, thenSLAQR0does a workspace query. In this case,SLAQR0checks 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,SLAQR0failed to compute all of the eigenvalues. Elements1:ilo-1andi+1:nofWRandWIcontain those eigenvalues which have been successfully computed. (Failures are rare.) IfINFO > 0andWANTis.FALSE., then on exit, the remaining unconverged eigenvalues are the eigenvalues of the upper Hessenberg matrix rows and columnsILOthroughINFOof the final, output value ofH. IfINFO > 0andWANTTis.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 (*) (regardless of the value of WANTT.) If INFO > 0 and WANTZ is .FALSE., then Z is 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
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 254 of file slaqr0.f.
Author
Generated automatically by Doxygen for LAPACK from the source code.
And thatβs the whole page, bestie π β this one came from LAPACK, Version 3.12.0, and the footer path is SRC/slaqr0.f(3). Slay. πβ¨
π¦ 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