Developer Reference

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

p?stein

Computes the eigenvectors of a tridiagonal matrix using inverse iteration.

Syntax

call psstein
(
n
,
d
,
e
,
m
,
w
,
iblock
,
isplit
,
orfac
,
z
,
iz
,
jz
,
descz
,
work
,
lwork
,
iwork
,
liwork
,
ifail
,
iclustr
,
gap
,
info
)
call pdstein
(
n
,
d
,
e
,
m
,
w
,
iblock
,
isplit
,
orfac
,
z
,
iz
,
jz
,
descz
,
work
,
lwork
,
iwork
,
liwork
,
ifail
,
iclustr
,
gap
,
info
)
call pcstein
(
n
,
d
,
e
,
m
,
w
,
iblock
,
isplit
,
orfac
,
z
,
iz
,
jz
,
descz
,
work
,
lwork
,
iwork
,
liwork
,
ifail
,
iclustr
,
gap
,
info
)
call pzstein
(
n
,
d
,
e
,
m
,
w
,
iblock
,
isplit
,
orfac
,
z
,
iz
,
jz
,
descz
,
work
,
lwork
,
iwork
,
liwork
,
ifail
,
iclustr
,
gap
,
info
)
Include Files
Description
The
p?stein
routine
computes the eigenvectors of a symmetric tridiagonal matrix
T
corresponding to specified eigenvalues, by inverse iteration.
p?stein
does not orthogonalize vectors that are on different processes. The extent of orthogonalization is controlled by the input parameter
lwork
. Eigenvectors that are to be orthogonalized are computed by the same process.
p?stein
decides on the allocation of work among the processes and then calls
?stein2
(modified LAPACK
routine
) on each individual process. If insufficient workspace is allocated, the expected orthogonalization may not be done.
If the eigenvectors obtained are not orthogonal, increase
lwork
and run the code again.
p
=
NPROW
*
NPCOL
is the total number of processes.
Input Parameters
n
(global)
INTEGER
.
The order of the matrix
T
(
n
0)
.
m
(global)
INTEGER
.
The number of eigenvectors to be returned.
d
,
e
,
w
(global)
REAL
for single-precision flavors
DOUBLE PRECISION
for double-precision flavors.
Arrays:
d
of size
n
contains the diagonal elements of
T
.
e
of size
n
-1
contains the off-diagonal elements of
T
.
w
of size
m
contains all the eigenvalues grouped by split-off block. The eigenvalues are supplied from smallest to largest within the block. (Here the output array
w
from <