Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
?laqr3
Performs the orthogonal/unitary similarity transformation of a Hessenberg matrix to detect and deflate fully converged eigenvalues from a trailing principal submatrix (aggressive early deflation).
Syntax
call slaqr3 ( wantt , wantz , n , ktop , kbot , nw , h , ldh , iloz , ihiz , z , ldz , ns , nd , sr , si , v , ldv , nh , t , ldt , nv , wv , ldwv , work , lwork )
call dlaqr3 ( wantt , wantz , n , ktop , kbot , nw , h , ldh , iloz , ihiz , z , ldz , ns , nd , sr , si , v , ldv , nh , t , ldt , nv , wv , ldwv , work , lwork )
call claqr3 ( wantt , wantz , n , ktop , kbot , nw , h , ldh , iloz , ihiz , z , ldz , ns , nd , sh , v , ldv , nh , t , ldt , nv , wv , ldwv , work , lwork )
call zlaqr3 ( wantt , wantz , n , ktop , kbot , nw , h , ldh , iloz , ihiz , z , ldz , ns , nd , sh , v , ldv , nh , t , ldt , nv , wv , ldwv , work , lwork )
Include Files
mkl.fi
Description
slaqr3 dlaqr3 claqr3 zlaqr3
The routine accepts as input an upper Hessenberg matrix H and performs an orthogonal/unitary similarity transformation designed to detect and deflate fully converged eigenvalues from a trailing principal submatrix. On output H has been overwritten by a new Hessenberg matrix that is a perturbation of an orthogonal/unitary similarity transformation of H . It is to be hoped that the final version of H has many zero subdiagonal entries.
Input Parameters
- wantt
-
LOGICAL . If wantt = .TRUE. , then the Hessenberg matrix H is fully updated so that the quasi-triangular/triangular Schur factor may be computed (in cooperation with the calling subroutine). If wantt = .FALSE. , then only enough of H is updated to preserve the eigenvalues.
- wantz
-
LOGICAL . If wantz = .TRUE. , then the orthogonal/unitary matrix Z is updated so that the orthogonal/unitary Schur factor may be computed (in cooperation with the calling subroutine). If wantz = .FALSE. , then Z is not referenced.
- n
-
INTEGER . The order of the Hessenberg matrix H and (if wantz = .TRUE. ) the order of the orthogonal/unitary matrix Z .
- ktop
-
INTEGER . It is assumed that either ktop=1 or h(ktop,ktop-1)=0 . ktop and kbot together determine an isolated block along the diagonal of the Hessenberg matrix.
- kbot
-
INTEGER . It is assumed without a check that either kbot=n or h(kbot+1,kbot)=0 . ktop and kbot together determine an isolated block along the diagonal of the Hessenberg matrix.
- nw
-
INTEGER . Size of the deflation window. 1≤ nw ≤ (kbot-ktop+1) .
- h
-
REAL for slaqr3 DOUBLE PRECISION for dlaqr3 COMPLEX for claqr3 DOUBLE COMPLEX for zlaqr3 . Array, DIMENSION ( ldh , n ), on input the initial n -by- n section of h stores the Hessenberg matrix H undergoing aggressive early deflation.
- ldh
-
INTEGER . The leading dimension of the array h just as declared in the calling subroutine. ldh≥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 slaqr3 DOUBLE PRECISION for dlaqr3 COMPLEX for claqr3 DOUBLE COMPLEX for zlaqr3 . Array, DIMENSION ( ldz , n ), 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 subroutine. ldz≥1 .
- v
-
REAL for slaqr3 DOUBLE PRECISION for dlaqr3 COMPLEX for claqr3 DOUBLE COMPLEX for zlaqr3 . Workspace array with dimension (ldv, nw) . An nw -by- nw work array.
- ldv
-
INTEGER . The leading dimension of the array v just as declared in the calling subroutine. ldv≥nw .
- nh
-
INTEGER . The number of column of t . nh≥nw .
- t
-
REAL for slaqr3 DOUBLE PRECISION for dlaqr3 COMPLEX for claqr3 DOUBLE COMPLEX for zlaqr3 . Workspace array with dimension (ldt, nw) .
- ldt
-
INTEGER . The leading dimension of the array t just as declared in the calling subroutine. ldt≥nw .
- nv
-
INTEGER . The number of rows of work array wv available for workspace. nv≥nw .
- wv
-
REAL for slaqr3 DOUBLE PRECISION for dlaqr3 COMPLEX for claqr3 DOUBLE COMPLEX for zlaqr3 . Workspace array with dimension (ldwv, nw) .
- ldwv
-
INTEGER . The leading dimension of the array wv just as declared in the calling subroutine. ldwv≥nw .
- work
-
REAL for slaqr3 DOUBLE PRECISION for dlaqr3 COMPLEX for claqr3 DOUBLE COMPLEX for zlaqr3 . Workspace array with dimension lwork .
- lwork
-
INTEGER . The dimension of the array work . lwork=2*nw) is sufficient, but for the optimal performance a greater workspace may be required. If lwork=-1, then the routine performs a workspace query: it estimates the optimal workspace size for the given values of the input parameters n , nw , ktop , and kbot . The estimate is returned in work(1) . No error messages related to the lwork is issued by xerbla . Neither H nor Z are accessed.
Output Parameters
- h
-
On output h has been transformed by an orthogonal/unitary similarity transformation, perturbed, and the returned to Hessenberg form that (it is to be hoped) has some zero subdiagonal entries.
- work(1)
-
On exit work(1) is set to an estimate of the optimal value of lwork for the given values of the input parameters n , nw , ktop , and kbot .
- z
-
If wantz is .TRUE. , then the orthogonal/unitary similarity transformation is accumulated into z(iloz:ihiz, ilo:ihi) from the right. If wantz is .FALSE. , then z is unreferenced.
- nd
-
INTEGER . The number of converged eigenvalues uncovered by the routine.
- ns
-
INTEGER . The number of unconverged, that is approximate eigenvalues returned in sr , si or in sh that may be used as shifts by the calling subroutine.
- sh
-
COMPLEX for claqr3 DOUBLE COMPLEX for zlaqr3 . Arrays, DIMENSION ( kbot ). The approximate eigenvalues that may be used for shifts are stored in the sh(kbot-nd-ns+1) through the sh(kbot-nd) . The converged eigenvalues are stored in the sh(kbot-nd+1) through the sh(kbot) .
- sr , si
-
REAL for slaqr3 DOUBLE PRECISION for dlaqr3 Arrays, DIMENSION ( kbot ) each. The real and imaginary parts of the approximate eigenvalues that may be used for shifts are stored in the sr(kbot-nd-ns+1) through the sr(kbot-nd) , and si(kbot-nd-ns+1) through the si(kbot-nd) , respectively. The real and imaginary parts of converged eigenvalues are stored in the sr(kbot-nd+1) through the sr(kbot) , and si(kbot-nd+1) through the si(kbot) , respectively.