public interface stein
STEIN computes the eigenvectors of a real symmetric tridiagonal
matrix T corresponding to specified eigenvalues, using inverse
iteration.
The maximum number of iterations allowed for each eigenvector is
specified by an internal parameter MAXITS (currently set to 5).
Although the eigenvectors are real, they are stored in a complex
array, which may be passed to CUNMTR or CUPMTR for back
transformation to the eigenvectors of a complex Hermitian matrix
which was reduced to tridiagonal form.
Subroutines
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
n |
|
|
real(kind=sp),
|
intent(in) |
|
|
:: |
d(*) |
|
|
real(kind=sp),
|
intent(in) |
|
|
:: |
e(*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
m |
|
|
real(kind=sp),
|
intent(in) |
|
|
:: |
w(*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
iblock(*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
isplit(*) |
|
|
complex(kind=sp),
|
intent(out) |
|
|
:: |
z(ldz,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
ldz |
|
|
real(kind=sp),
|
intent(out) |
|
|
:: |
work(*) |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
iwork(*) |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
ifail(*) |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
info |
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
n |
|
|
real(kind=dp),
|
intent(in) |
|
|
:: |
d(*) |
|
|
real(kind=dp),
|
intent(in) |
|
|
:: |
e(*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
m |
|
|
real(kind=dp),
|
intent(in) |
|
|
:: |
w(*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
iblock(*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
isplit(*) |
|
|
real(kind=dp),
|
intent(out) |
|
|
:: |
z(ldz,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
ldz |
|
|
real(kind=dp),
|
intent(out) |
|
|
:: |
work(*) |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
iwork(*) |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
ifail(*) |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
info |
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
n |
|
|
real(kind=sp),
|
intent(in) |
|
|
:: |
d(*) |
|
|
real(kind=sp),
|
intent(in) |
|
|
:: |
e(*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
m |
|
|
real(kind=sp),
|
intent(in) |
|
|
:: |
w(*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
iblock(*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
isplit(*) |
|
|
real(kind=sp),
|
intent(out) |
|
|
:: |
z(ldz,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
ldz |
|
|
real(kind=sp),
|
intent(out) |
|
|
:: |
work(*) |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
iwork(*) |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
ifail(*) |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
info |
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
n |
|
|
real(kind=dp),
|
intent(in) |
|
|
:: |
d(*) |
|
|
real(kind=dp),
|
intent(in) |
|
|
:: |
e(*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
m |
|
|
real(kind=dp),
|
intent(in) |
|
|
:: |
w(*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
iblock(*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
isplit(*) |
|
|
complex(kind=dp),
|
intent(out) |
|
|
:: |
z(ldz,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
ldz |
|
|
real(kind=dp),
|
intent(out) |
|
|
:: |
work(*) |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
iwork(*) |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
ifail(*) |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
info |
|
Module Procedures