SRC/zlaqr5.f(3)

✨ NAME ✨

SRC/zlaqr5.f β€” bestie, you're in the LAPACK Library Functions Manual and this is the page for zlaqr5, the subroutine with single small-bulge multi-shift QR sweep main character energy. πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

Functions/Subroutines

subroutine zlaqr5 (wantt, wantz, kacc22, n, ktop, kbot, nshfts, s, h,
     ldh, iloz, ihiz, z, ldz, v, ldv, u, ldu, nv, wv, ldwv, nh, wh, ldwh)

ZLAQR5 performs a single small-bulge multi-shift QR sweep. ✨


πŸ’… Function/Subroutine Documentation πŸ’…

subroutine zlaqr5 (logical wantt, logical wantz, integer kacc22, integer n,
     integer ktop, integer kbot, integer nshfts, complex*16, dimension( * )
     s, complex*16, dimension( ldh, * ) h, integer ldh, integer iloz, integer
     ihiz, complex*16, dimension( ldz, * ) z, integer ldz, complex*16,
     dimension( ldv, * ) v, integer ldv, complex*16, dimension( ldu, * ) u,
     integer ldu, integer nv, complex*16, dimension( ldwv, * ) wv, integer
     ldwv, integer nh, complex*16, dimension( ldwh, * ) wh, integer ldwh)

ZLAQR5 performs a single small-bulge multi-shift QR sweep. 🫢

Purpose

ZLAQR5, called by ZLAQR0, performs a single small-bulge multi-shift QR sweep. πŸ¦‹

Parameters

  • WANTT β€” WANTT is LOGICAL. WANTT = .true. if the triangular Schur factor is being computed. WANTT is set to .false. otherwise.
  • WANTZ β€” WANTZ is LOGICAL. WANTZ = .true. if the unitary Schur factor is being computed. WANTZ is set to .false. otherwise.
  • KACC22 β€” KACC22 is INTEGER with value 0, 1, or 2. Specifies the computation mode of far-from-diagonal orthogonal updates.
    • = 0: ZLAQR5 does not accumulate reflections and does not use matrix-matrix multiply to update far-from-diagonal matrix entries.
    • = 1: ZLAQR5 accumulates reflections and uses matrix-matrix multiply to update the far-from-diagonal matrix entries.
    • = 2: Same as KACC22 = 1. This option used to enable exploiting the 2-by-2 structure during matrix multiplications, but this is no longer supported.
  • N β€” N is INTEGER. N is the order of the Hessenberg matrix H upon 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 either KTOP = 1 or H(KTOP,KTOP-1) = 0 and either KBOT = N or H(KBOT+1,KBOT) = 0.
  • NSHFTS β€” NSHFTS is INTEGER. NSHFTS gives the number of simultaneous shifts. NSHFTS must be positive and even.
  • S β€” S is COMPLEX*16 array, dimension (NSHFTS). S contains the shifts of origin that define the multi-shift QR sweep. On output S may be reordered.
  • H β€” H is COMPLEX*16 array, dimension (LDH,N). On input H contains a Hessenberg matrix. On output a multi-shift QR sweep with shifts SR(J)+i*SI(J) is applied to the isolated diagonal block in rows and columns KTOP through KBOT.
  • LDH β€” LDH is INTEGER. LDH is the leading dimension of H just as declared in the calling procedure. LDH >= MAX(1,N).
  • ILOZ β€” ILOZ is INTEGER.
  • IHIZ β€” IHIZ is INTEGER. Specify the rows of Z to which transformations must be applied if WANTZ is .TRUE.. 1 <= ILOZ <= IHIZ <= N.
  • Z β€” Z is COMPLEX*16 array, dimension (LDZ,IHIZ). If WANTZ = .TRUE., then the QR Sweep unitary similarity transformation is accumulated into Z(ILOZ:IHIZ,ILOZ:IHIZ) from the right. If WANTZ = .FALSE., then Z is unreferenced.
  • LDZ β€” LDZ is INTEGER. The original says LDA is the leading dimension of Z just as declared in the calling procedure. LDZ >= N.
  • V β€” V is COMPLEX*16 array, dimension (LDV,NSHFTS/2).
  • LDV β€” LDV is INTEGER. LDV is the leading dimension of V as declared in the calling procedure. LDV >= 3.
  • U β€” U is COMPLEX*16 array, dimension (LDU,2*NSHFTS).
  • LDU β€” LDU is INTEGER. LDU is the leading dimension of U just as declared in the in the calling subroutine. LDU >= 2*NSHFTS.
  • NV β€” NV is INTEGER. NV is the number of rows in WV agailable for workspace. NV >= 1.
  • WV β€” WV is COMPLEX*16 array, dimension (LDWV,2*NSHFTS).
  • LDWV β€” LDWV is INTEGER. LDWV is the leading dimension of WV as declared in the in the calling subroutine. LDWV >= NV.
  • NH β€” NH is INTEGER. NH is the number of columns in array WH available for workspace. NH >= 1.
  • WH β€” WH is COMPLEX*16 array, dimension (LDWH,NH).
  • LDWH β€” LDWH is INTEGER. Leading dimension of WH just 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 254 of file zlaqr5.f.


🌟 Author 🌟

Generated automatically by Doxygen for LAPACK from the source code.


Okay bestie, footer time: this iconic little page is LAPACK Version 3.12.0, for SRC/zlaqr5.f(3). Slay, bye! πŸ’–βœ¨

πŸ“¦ where this page comes from