![]() |
LAPACK
3.8.0
LAPACK: Linear Algebra PACKage
|
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.
Download SLAQR5 + dependencies [TGZ] [ZIP] [TXT]
SLAQR5, called by SLAQR0, performs a single small-bulge multi-shift QR sweep.
[in] | WANTT | WANTT is LOGICAL WANTT = .true. if the quasi-triangular Schur factor is being computed. WANTT is set to .false. otherwise. |
[in] | WANTZ | WANTZ is LOGICAL WANTZ = .true. if the orthogonal Schur factor is being computed. WANTZ is set to .false. otherwise. |
[in] | KACC22 | KACC22 is INTEGER with value 0, 1, or 2. 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: SLAQR5 accumulates reflections, uses matrix-matrix multiply to update the far-from-diagonal matrix entries, and takes advantage of 2-by-2 block structure during matrix multiplies. |
[in] | N | N is INTEGER N is the order of the Hessenberg matrix H upon which this subroutine operates. |
[in] | KTOP | KTOP is INTEGER |
[in] | 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. |
[in] | NSHFTS | NSHFTS is INTEGER NSHFTS gives the number of simultaneous shifts. NSHFTS must be positive and even. |
[in,out] | SR | SR is REAL array, dimension (NSHFTS) |
[in,out] | SI | SI is REAL array, dimension (NSHFTS) SR contains the real parts and SI contains the imaginary parts of the NSHFTS shifts of origin that define the multi-shift QR sweep. On output SR and SI may be reordered. |
[in,out] | H | H is REAL 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. |
[in] | LDH | LDH is INTEGER LDH is the leading dimension of H just as declared in the calling procedure. LDH.GE.MAX(1,N). |
[in] | ILOZ | ILOZ is INTEGER |
[in] | IHIZ | IHIZ is INTEGER Specify the rows of Z to which transformations must be applied if WANTZ is .TRUE.. 1 .LE. ILOZ .LE. IHIZ .LE. N |
[in,out] | Z | Z is REAL array, dimension (LDZ,IHIZ) If WANTZ = .TRUE., then the QR Sweep orthogonal similarity transformation is accumulated into Z(ILOZ:IHIZ,ILOZ:IHIZ) from the right. If WANTZ = .FALSE., then Z is unreferenced. |
[in] | LDZ | LDZ is INTEGER LDA is the leading dimension of Z just as declared in the calling procedure. LDZ.GE.N. |
[out] | V | V is REAL array, dimension (LDV,NSHFTS/2) |
[in] | LDV | LDV is INTEGER LDV is the leading dimension of V as declared in the calling procedure. LDV.GE.3. |
[out] | U | U is REAL array, dimension (LDU,3*NSHFTS-3) |
[in] | LDU | LDU is INTEGER LDU is the leading dimension of U just as declared in the in the calling subroutine. LDU.GE.3*NSHFTS-3. |
[in] | NH | NH is INTEGER NH is the number of columns in array WH available for workspace. NH.GE.1. |
[out] | WH | WH is REAL array, dimension (LDWH,NH) |
[in] | LDWH | LDWH is INTEGER Leading dimension of WH just as declared in the calling procedure. LDWH.GE.3*NSHFTS-3. |
[in] | NV | NV is INTEGER NV is the number of rows in WV agailable for workspace. NV.GE.1. |
[out] | WV | WV is REAL array, dimension (LDWV,3*NSHFTS-3) |
[in] | LDWV | LDWV is INTEGER LDWV is the leading dimension of WV as declared in the in the calling subroutine. LDWV.GE.NV. |