Developer Reference

  • 2020.2
  • 07/15/2020
  • Public Content
Contents

p?hseqr

Computes eigenvalues and (optionally) the Schur factorization of a matrix reduced to Hessenberg form.

Syntax

call pshseqr
(
job
,
compz
,
n
,
ilo
,
ihi
,
h
,
desch
,
wr
,
wi
,
z
,
descz
,
work
,
lwork
,
iwork
,
liwork
,
info
)
call pdhseqr
(
job
,
compz
,
n
,
ilo
,
ihi
,
h
,
desch
,
wr
,
wi
,
z
,
descz
,
work
,
lwork
,
iwork
,
liwork
,
info
)
Include Files
Description
p?hseqr
computes the eigenvalues of an upper Hessenberg matrix
H
and, optionally, the matrices
T
and
Z
from the Schur decomposition
H
=
Z
*
T
*
Z
T
, where
T
is an upper quasi-triangular matrix (the Schur form), and
Z
is the orthogonal matrix of Schur vectors.
Optionally
Z
may be postmultiplied into an input orthogonal matrix
Q
so that this
routine
can give the Schur factorization of a matrix
A
which has been reduced to the Hessenberg form
H
by the orthogonal matrix
Q
:
A
=
Q
*
H
*
Q
T
= (
Q
Z
)*
T
*(
Q
Z
)
T
.
These restrictions apply to the use of
p?hseqr
:
  • The code requires the distributed block size to be square and at least 6.
  • The code requires A and Z to be distributed identically and have identical contexts.
  • The matrix A must be in upper Hessenberg form. If elements below the subdiagonal are non-zero, the resulting transformations can be nonsimilar.
  • All eigenvalues are distributed to all the nodes.
Input Parameters
job
(global)
CHARACTER
*1
= 'E': compute eigenvalues only;
= 'S': compute eigenvalues and the Schur form T.
compz
(global)
CHARACTER
*1
= 'N': no Schur vectors are computed;
= 'I':
z
is initialized to the unit matrix and the matrix
Z
of Schur vectors of
H
is returned;
= 'V':
z
must contain an orthogonal matrix
Q
on entry, and the product
Q
*
Z
is returned.
n
(global )
INTEGER
The order of the Hessenberg matrix
H
.
n
0.
ilo
,
ihi
(global )
INTEGER
It is assumed that
H
is already upper triangular in rows and columns 1:
ilo
-1 and
ihi
+1:
n
.
ilo
and
ihi
are normally set by a previous call to p gebal, and then passed to
p?gehrd
when the matrix output by
p?gebal
is reduced to Hessenberg form. Otherwise
ilo
and
ihi
should be set to 1 and
n
respectively. If
n
>0, then 1
ilo
ihi
n
.
If
n
= 0, then
ilo
= 1 and
ihi
= 0.
h
REAL
for
pshseqr
DOUBLE PRECISION
for
pdhseqr
(global ) array of size
(
desch
(
lld_
),
LOC
c
(
n
))
The upper Hessenberg matrix
H
.
desch
(global and local)
INTEGER
array of size
dlen_
The array descriptor for the distributed matrix
H
.
z
REAL
for
pshseqr
DOUBLE PRECISION
for
pdhseqr
(global ) array