Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
p?laqr4
Computes the eigenvalues of a Hessenberg matrix, and optionally computes the matrices from the Schur decomposition.
Syntax
call pslaqr4 ( wantt , wantz , n , ilo , ihi , a , desca , wr , wi , iloz , ihiz , z , descz , t , ldt , v , ldv , work , lwork , info )
call pdlaqr4 ( wantt , wantz , n , ilo , ihi , a , desca , wr , wi , iloz , ihiz , z , descz , t , ldt , v , ldv , work , lwork , info )
Include Files
mkl_scalapack.h
Description
p?laqr4 is an auxiliary routine function used to find the Schur decomposition and or eigenvalues of a matrix already in Hessenberg form from cols ilo to ihi . This routine function requires that the active block is small enough, i.e. ihi - ilo +1 ≤ ldt , so that it can be solved by LAPACK. Normally, it is called by p?laqr1 (Sets a scalar multiple of the first column of the product of a 2-by-2 or 3-by-3 matrix and specified shifts.) . All the inputs are assumed to be valid without checking.
Input Parameters
- wantt
-
(global ) LOGICAL
= .TRUE. : the full Schur form T is required;
= .FALSE. : only eigenvalues are required.
- wantz
-
(global ) LOGICAL
= .TRUE. : the matrix of Schur vectors Z is required;
= .FALSE. : Schur vectors are not required.
- n
-
(global ) INTEGER
The order of the Hessenberg matrix A (and Z if wantz ). n ≥ 0.
- ilo , ihi
-
(global ) INTEGER
It is assumed that a is already upper quasi-triangular in rows and columns ihi +1: n , and that A ( ilo , ilo -1) = 0 (unless ilo = 1). p?laqr4 works primarily with the Hessenberg submatrix in rows and columns ilo to ihi , but applies transformations to all of A if wantt is .TRUE. . 1 ≤ ilo ≤ max(1, ihi ); ihi ≤ n .
- a
-
REAL for pslaqr4 DOUBLE PRECISION for pdlaqr4
(global ) array of size ( lld_a , LOCc ( n ))
The upper Hessenberg matrix A .
desca
(global and local) INTEGER array of size dlen_ .
The array descriptor for the distributed matrix a .
- iloz , ihiz
-
(global ) INTEGER
Specify the rows of the matrix Z to which transformations must be applied if wantz is .TRUE. . 1 ≤ iloz ≤ ilo ; ihi ≤ ihiz ≤ n .
- z
-
REAL for pslaqr4 DOUBLE PRECISION for pdlaqr4 (global ) array.
If wantz is .TRUE. , on entry z must contain the current matrix Z of transformations accumulated by GUID-B863D4DF-2BC6-4E9F-863E-84D4BC7839C5.xml p?hseqr .
If wantz is .FALSE. , z is not referenced.
descz
(global and local) INTEGER array of size dlen_ .
The array descriptor for the distributed matrix Z .
- t
-
REAL for pslaqr4 DOUBLE PRECISION for pdlaqr4
(local workspace) array of size ldt *( ihi - ilo +1) .
- ldt
-
(local ) INTEGER The leading dimension of the array t . ldt ≥ ihi - ilo +1.
- v
-
REAL for pslaqr4 DOUBLE PRECISION for pdlaqr4
(local workspace) array of size ldv *( ihi - ilo +1) .
- ldv
-
(local ) INTEGER The leading dimension of the array v . ldv ≥ ihi - ilo +1.
- work
-
REAL for pslaqr4 DOUBLE PRECISION for pdlaqr4 (local workspace) array of size lwork .
- lwork
-
(local ) INTEGER The size of the work array work . lwork ≥ ihi - ilo +1.
OUTPUT Parameters
a
On exit, if wantt is .TRUE. , the matrix A is upper quasi-triangular in rows and columns ilo : ihi , with any 2-by-2 or larger diagonal blocks not yet in standard form. If wantt is .FALSE. , the contents of a are unspecified on exit.
- wr , wi
-
REAL for pslaqr4 DOUBLE PRECISION for pdlaqr4 (global replicated ) array of size n
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 is .TRUE. , the eigenvalues are stored in the same order as on the diagonal of the Schur form returned in a . The matrix A may be returned with larger diagonal blocks until the next release.
z
If wantz is .TRUE. , z is updated with transformations applied only to the submatrix Z ( iloz : ihiz , ilo : ihi ).
- info
-
(global ) INTEGER < 0: parameter number - info incorrect or inconsistent; = 0: successful exit;
> 0: p?laqr4 failed to compute all the eigenvalues ilo to ihi in a total of 30*( ihi - ilo +1) iterations; if info = i , elements i +1: ihi of wr and wi contain those eigenvalues which have been successfully computed.