Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
?lahqr
Computes the eigenvalues and Schur factorization of an upper Hessenberg matrix, using the double-shift/single-shift QR algorithm.
Syntax
call slahqr ( wantt , wantz , n , ilo , ihi , h , ldh , wr , wi , iloz , ihiz , z , ldz , info )
call dlahqr ( wantt , wantz , n , ilo , ihi , h , ldh , wr , wi , iloz , ihiz , z , ldz , info )
call clahqr ( wantt , wantz , n , ilo , ihi , h , ldh , w , iloz , ihiz , z , ldz , info )
call zlahqr ( wantt , wantz , n , ilo , ihi , h , ldh , w , iloz , ihiz , z , ldz , info )
Include Files
mkl.fi
Description
slahqr dlahqr clahqr zlahqr
The routine is an auxiliary routine called by ?hseqr (Computes all eigenvalues and (optionally) the Schur factorization of a matrix reduced to Hessenberg form.) to update the eigenvalues and Schur decomposition already computed by ?hseqr , by dealing with the Hessenberg submatrix in rows and columns ilo to ihi .
Input Parameters
- wantt
-
LOGICAL . If wantt = .TRUE. , the full Schur form T is required; If wantt = .FALSE. , eigenvalues only are required.
- wantz
-
LOGICAL . If wantz = .TRUE. , the matrix of Schur vectors Z is required; If wantz = .FALSE. , Schur vectors are not required.
- n
-
INTEGER . The order of the matrix H ( n≥ 0 ).
- ilo , ihi
-
INTEGER . It is assumed that h is already upper quasi-triangular in rows and columns ihi +1: n , and that h(ilo,ilo-1) = 0 (unless ilo = 1 ). The routine ?lahqr works primarily with the Hessenberg submatrix in rows and columns ilo to ihi , but applies transformations to all of h if wantt = .TRUE. . Constraints: 1 ≤ ilo ≤ max(1,ihi); ihi ≤ n .
- h , z
-
REAL for slahqr DOUBLE PRECISION for dlahqr COMPLEX for clahqr DOUBLE COMPLEX for zlahqr . Arrays: h ( ldh ,*) contains the upper Hessenberg matrix h . The second dimension of h must be at least max(1, n) . z ( ldz ,*) If wantz = .TRUE. , then, on entry, z must contain the current matrix z of transformations accumulated by ?hseqr . The second dimension of z must be at least max(1, n) If wantz = .FALSE. , then z is not referenced..
- ldh
-
INTEGER . The leading dimension of h ; at least max(1, n) .
- ldz
-
INTEGER . The leading dimension of z ; at least max(1, n) .
- iloz , ihiz
-
INTEGER . Specify the rows of z to which transformations must be applied if wantz = .TRUE. . 1 ≤ iloz ≤ ilo ; ihi ≤ ihiz ≤ n .
Output Parameters
- h
-
On exit, if info = 0 and wantt = .TRUE. , then, for slahqr/dlahqr , h is upper quasi-triangular in rows and columns ilo : ihi with any 2-by-2 diagonal blocks in standard form. for clahqr/zlahqr , h is upper triangular in rows and columns ilo : ihi . If info = 0 and wantt = .FALSE. , the contents of h are unspecified on exit. If info is positive, see description of info for the output state of h .
- wr , wi
-
REAL for slahqr DOUBLE PRECISION for dlahqr Arrays, DIMENSION at least max(1, n) each. Used with real flavors only. The real and imaginary parts, respectively, of the computed eigenvalues ilo to ihi are stored in the corresponding elements of wr and wi . If two eigenvalues are computed as a complex conjugate pair, they are stored in consecutive elements of wr and wi , say the i-th and (i+1)-th, with wi(i)> 0 and wi(i+1) < 0 . If wantt = .TRUE. , the eigenvalues are stored in the same order as on the diagonal of the Schur form returned in h , with wr(i) = h(i,i) , and, if h(i:i+1, i:i+1) is a 2-by-2 diagonal block, wi(i) = sqrt(h(i+1,i)*h(i,i+1)) and wi(i+1) = -wi(i) .
- w
-
COMPLEX for clahqr DOUBLE COMPLEX for zlahqr . Array, DIMENSION at least max(1, n) . Used with complex flavors only. The computed eigenvalues ilo to ihi are stored in the corresponding elements of w . If wantt = .TRUE. , the eigenvalues are stored in the same order as on the diagonal of the Schur form returned in h , with w(i) = h(i,i) .
- z
-
If wantz = .TRUE. , then, on exit z has been updated; transformations are applied only to the submatrix z ( iloz : ihiz , ilo : ihi ).
info
INTEGER .
If info = 0 , the execution is successful.
With info > 0 ,