Visible to Intel only — GUID: GUID-45CD5B1E-F83E-4A7B-B490-7EEB822BEB19
Visible to Intel only — GUID: GUID-45CD5B1E-F83E-4A7B-B490-7EEB822BEB19
?laqr5
Performs a single small-bulge multi-shift QR sweep.
Syntax
call 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 )
call dlaqr5( 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 )
call claqr5( wantt, wantz, kacc22, n, ktop, kbot, nshfts, s, h, ldh, iloz, ihiz, z, ldz, v, ldv, u, ldu, nv, wv, ldwv, nh, wh, ldwh )
call 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 )
Include Files
- mkl.fi
Description
This auxiliary routine called by ?laqr0 performs a single small-bulge multi-shift QR sweep.
Input Parameters
- wantt
-
LOGICAL.
wantt = .TRUE. if the quasi-triangular/triangular Schur factor is computed.
wantt is set to .FALSE. otherwise.
- wantz
-
LOGICAL.
wantz = .TRUE. if the orthogonal/unitary Schur factor is computed.
wantz is set to .FALSE. otherwise.
- kacc22
-
INTEGER. Possible values are 0, 1, or 2.
Specifies the computation mode of far-from-diagonal orthogonal updates.
= 0: the routine does not accumulate reflections and does not use matrix-matrix multiply to update far-from-diagonal matrix entries.
= 1: the routine accumulates reflections and uses matrix-matrix multiply to update the far-from-diagonal matrix entries.
= 2: the routine 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.
- n
-
INTEGER. The order of the Hessenberg matrix H upon which the routine operates.
- ktop, kbot
-
INTEGER.
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
-
INTEGER.
Number of simultaneous shifts, must be positive and even.
- sr, si
-
REAL for slaqr5
DOUBLE PRECISION for dlaqr5
Arrays, DIMENSION (nshfts) each.
sr contains the real parts and si contains the imaginary parts of the nshfts shifts of origin that define the multi-shift QR sweep.
- s
-
COMPLEX for claqr5
DOUBLE COMPLEX for zlaqr5.
Arrays, DIMENSION (nshfts).
s contains the shifts of origin that define the multi-shift QR sweep.
- h
-
REAL for slaqr5
DOUBLE PRECISION for dlaqr5
COMPLEX for claqr5
DOUBLE COMPLEX for zlaqr5.
Array, DIMENSION (ldh, n), on input contains the Hessenberg matrix.
- ldh
-
INTEGER. The leading dimension of the array h just as declared in the calling routine. ldh ≥ max(1, n).
- iloz, ihiz
-
INTEGER. Specify the rows of Z to which transformations must be applied if wantz is .TRUE.. 1 ≤ iloz ≤ ihiz ≤ n.
- z
-
REAL for slaqr5
DOUBLE PRECISION for dlaqr5
COMPLEX for claqr5
DOUBLE COMPLEX for zlaqr5.
Array, DIMENSION (ldz, ihi), contains the matrix Z if wantz is .TRUE.. If wantz is .FALSE., then z is not referenced.
- ldz
-
INTEGER. The leading dimension of the array z just as declared in the calling routine. ldz ≥ n.
- v
-
REAL for slaqr5
DOUBLE PRECISION for dlaqr5
COMPLEX for claqr5
DOUBLE COMPLEX for zlaqr5.
Workspace array with dimension (ldv, nshfts/2).
- ldv
-
INTEGER. The leading dimension of the array v just as declared in the calling routine. ldv ≥ 3.
- u
-
REAL for slaqr5
DOUBLE PRECISION for dlaqr5
COMPLEX for claqr5
DOUBLE COMPLEX for zlaqr5.
Workspace array with dimension (ldu, 3*nshfts-3).
- ldu
-
INTEGER. The leading dimension of the array u just as declared in the calling routine. ldu ≥ 3*nshfts-3.
- nh
-
INTEGER. The number of column in the array wh available for workspace. nh ≥ 1.
- wh
-
REAL for slaqr5
DOUBLE PRECISION for dlaqr5
COMPLEX for claqr5
DOUBLE COMPLEX for zlaqr5.
Workspace array with dimension (ldwh, nh)
- ldwh
-
INTEGER. The leading dimension of the array wh just as declared in the calling routine. ldwh ≥ 3*nshfts-3
- nv
-
INTEGER. The number of rows of the array wv available for workspace. nv ≥ 1.
- wv
-
REAL for slaqr5
DOUBLE PRECISION for dlaqr5
COMPLEX for claqr5
DOUBLE COMPLEX for zlaqr5.
Workspace array with dimension (ldwv, 3*nshfts-3).
- ldwv
-
INTEGER. The leading dimension of the array wv just as declared in the calling routine. ldwv ≥ nv.
Output Parameters
- sr, si
-
On output, may be reordered.
- h
-
On output a multi-shift QR Sweep with shifts sr(j)+i*si(j) or s(j) is applied to the isolated diagonal block in rows and columns ktop through kbot .
- z
-
If wantz is .TRUE., then the QR Sweep orthogonal/unitary similarity transformation is accumulated into z(iloz:ihiz, ilo:ihi) from the right.
If wantz is .FALSE., then z is unreferenced.