Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
?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
slaqr5 dlaqr5 claqr5 zlaqr5
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.