SLAQR5(3)
π SLAQR5(3) π
okay so bestie, welcome to SLAQR5(3) from the Library Functions Manual β this is the LAPACK page for a real one: SLAQR5. Itβs giving βsmall-bulge multi-shift QR sweepβ main character energy, and honestly? Iconic. π«Ά
β¨ NAME β¨
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/slaqr5.f
yes, that whole path is literally the NAME entry. no cap. π
πΈ SYNOPSIS πΈ
π Functions/Subroutines π
subroutine SLAQR5 (wantt, wantz, kacc22, n, ktop, kbot, nshfts, sr, si,
h, ldh, iloz, ihiz, z, ldz, v, ldv, u, ldu, nv, wv, ldwv, nh, wh,
ldwh)
SLAQR5 performs a single small-bulge multi-shift QR sweep.
π¦ Function/Subroutine Documentation π¦
π§ subroutine SLAQR5 π§
subroutine SLAQR5 (logical wantt, logical wantz, integer kacc22, integer n,
integer ktop, integer kbot, integer nshfts, real, dimension( * ) sr,
real, dimension( * ) si, real, dimension( ldh, * ) h, integer ldh,
integer iloz, integer ihiz, real, dimension( ldz, * ) z, integer ldz,
real, dimension( ldv, * ) v, integer ldv, real, dimension( ldu, * ) u,
integer ldu, integer nv, real, dimension( ldwv, * ) wv, integer ldwv,
integer nh, real, dimension( ldwh, * ) wh, integer ldwh)
SLAQR5 performs a single small-bulge multi-shift QR sweep. thatβs the whole vibe, and it ate. β¨
Purpose:
!>
!> SLAQR5, called by SLAQR0, performs a
!> single small-bulge multi-shift QR sweep.
!>
Parameters
WANTTβWANTT is LOGICAL.WANTT = .true.if the quasi-triangular Schur factor is being computed.WANTTis set to.false.otherwise.WANTZβWANTZ is LOGICAL.WANTZ = .true.if the orthogonal Schur factor is being computed.WANTZis set to.false.otherwise.KACC22βKACC22 is INTEGER with value 0, 1, or 2.It specifies the computation mode of far-from-diagonal orthogonal updates.= 0: SLAQR5 does not accumulate reflections and does not use matrix-matrix multiply to update far-from-diagonal matrix entries.= 1: SLAQR5 accumulates reflections and uses matrix-matrix multiply to update the far-from-diagonal matrix entries.= 2: Same asKACC22 = 1. This option used to enable exploiting the2-by-2structure during matrix multiplications, but this is no longer supported. π«
NβN is INTEGER.Nis the order of the Hessenberg matrixHupon which this subroutine operates.KTOPβKTOP is INTEGER.KBOTβKBOT is INTEGER. These are the first and last rows and columns of an isolated diagonal block upon which the QR sweep is to be applied. It is assumed without a check that eitherKTOP = 1orH(KTOP,KTOP-1) = 0and eitherKBOT = NorH(KBOT+1,KBOT) = 0.NSHFTSβNSHFTS is INTEGER.NSHFTSgives the number of simultaneous shifts.NSHFTSmust be positive and even.SRβSR is REAL array, dimension (NSHFTS).SIβSI is REAL array, dimension (NSHFTS).SRcontains the real parts andSIcontains the imaginary parts of theNSHFTSshifts of origin that define the multi-shift QR sweep. On outputSRandSImay be reordered.HβH is REAL array, dimension (LDH,N). On inputHcontains a Hessenberg matrix. On output a multi-shift QR sweep with shiftsSR(J)+i*SI(J)is applied to the isolated diagonal block in rows and columnsKTOPthroughKBOT.LDHβLDH is INTEGER.LDHis the leading dimension ofHjust as declared in the calling procedure.LDH >= MAX(1,N).ILOZβILOZ is INTEGER.IHIZβIHIZ is INTEGER. Specify the rows ofZto which transformations must be applied ifWANTZis.TRUE..1 <= ILOZ <= IHIZ <= N.ZβZ is REAL array, dimension (LDZ,IHIZ). IfWANTZ = .TRUE., then the QR Sweep orthogonal similarity transformation is accumulated intoZ(ILOZ:IHIZ,ILOZ:IHIZ)from the right. IfWANTZ = .FALSE., thenZis unreferenced.LDZβLDZ is INTEGER. The text saysLDAis the leading dimension ofZjust as declared in the calling procedure.LDZ >= N. yes bestie, it literally saysLDAthere β weβre keeping the detail exactly as it appears. πVβV is REAL array, dimension (LDV,NSHFTS/2).LDVβLDV is INTEGER.LDVis the leading dimension ofVas declared in the calling procedure.LDV >= 3.UβU is REAL array, dimension (LDU,2*NSHFTS).LDUβLDU is INTEGER.LDUis the leading dimension ofUjust as declared in the in the calling subroutine.LDU >= 2*NSHFTS.NVβNV is INTEGER.NVis the number of rows inWVavailable for workspace.NV >= 1. (the original spells itagailableβ keeping that exact energy π)WVβWV is REAL array, dimension (LDWV,2*NSHFTS).LDWVβLDWV is INTEGER.LDWVis the leading dimension ofWVas declared in the in the calling subroutine.LDWV >= NV.NHβNH is INTEGER.NHis the number of columns in arrayWHavailable for workspace.NH >= 1.WHβWH is REAL array, dimension (LDWH,NH).LDWHβLDWH is INTEGER. Leading dimension ofWHjust as declared in the calling procedure.LDWH >= 2*NSHFTS.
π 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
Lars Karlsson, Daniel Kressner, and Bruno Lang
Thijs Steel, Department of Computer science, KU Leuven, Belgium
π₯ 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.
Lars Karlsson, Daniel Kressner, and Bruno Lang, Optimally packed chains of bulges in multishift QR algorithms. ACM Trans. Math. Softw. 40, 2, Article 12 (February 2014).
π Definition at line 262 of file slaqr5.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
π cute little footer sign-off: LAPACK, Version 3.12.0, and /home/abui...RC/slaqr5.f(3) β no date listed in the footer, just those source/version deets. periodt. π«Ά
π¦ 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