public interface stegr
STEGR computes selected eigenvalues and, optionally, eigenvectors
of a real symmetric tridiagonal matrix T. Any such unreduced matrix has
a well defined set of pairwise different real eigenvalues, the corresponding
real eigenvectors are pairwise orthogonal.
The spectrum may be computed either completely or partially by specifying
either an interval (VL,VU] or a range of indices IL:IU for the desired
eigenvalues.
STEGR is a compatibility wrapper around the improved CSTEMR routine.
See SSTEMR for further details.
One important change is that the ABSTOL parameter no longer provides any
benefit and hence is no longer used.
Note : STEGR and CSTEMR work only on machines which follow
IEEE-754 floating-point standard in their handling of infinities and
NaNs. Normal execution may create these exceptiona values and hence
may abort due to a floating point exception in environments which
do not conform to the IEEE-754 standard.
Subroutines
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
character(len=1),
|
intent(in) |
|
|
:: |
jobz |
|
|
character(len=1),
|
intent(in) |
|
|
:: |
range |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
n |
|
|
real(kind=sp),
|
intent(inout) |
|
|
:: |
d(*) |
|
|
real(kind=sp),
|
intent(inout) |
|
|
:: |
e(*) |
|
|
real(kind=sp),
|
intent(in) |
|
|
:: |
vl |
|
|
real(kind=sp),
|
intent(in) |
|
|
:: |
vu |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
il |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
iu |
|
|
real(kind=sp),
|
intent(in) |
|
|
:: |
abstol |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
m |
|
|
real(kind=sp),
|
intent(out) |
|
|
:: |
w(*) |
|
|
complex(kind=sp),
|
intent(out) |
|
|
:: |
z(ldz,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
ldz |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
isuppz(*) |
|
|
real(kind=sp),
|
intent(out) |
|
|
:: |
work(*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
lwork |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
iwork(*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
liwork |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
info |
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
character(len=1),
|
intent(in) |
|
|
:: |
jobz |
|
|
character(len=1),
|
intent(in) |
|
|
:: |
range |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
n |
|
|
real(kind=dp),
|
intent(inout) |
|
|
:: |
d(*) |
|
|
real(kind=dp),
|
intent(inout) |
|
|
:: |
e(*) |
|
|
real(kind=dp),
|
intent(in) |
|
|
:: |
vl |
|
|
real(kind=dp),
|
intent(in) |
|
|
:: |
vu |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
il |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
iu |
|
|
real(kind=dp),
|
intent(in) |
|
|
:: |
abstol |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
m |
|
|
real(kind=dp),
|
intent(out) |
|
|
:: |
w(*) |
|
|
real(kind=dp),
|
intent(out) |
|
|
:: |
z(ldz,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
ldz |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
isuppz(*) |
|
|
real(kind=dp),
|
intent(out) |
|
|
:: |
work(*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
lwork |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
iwork(*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
liwork |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
info |
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
character(len=1),
|
intent(in) |
|
|
:: |
jobz |
|
|
character(len=1),
|
intent(in) |
|
|
:: |
range |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
n |
|
|
real(kind=sp),
|
intent(inout) |
|
|
:: |
d(*) |
|
|
real(kind=sp),
|
intent(inout) |
|
|
:: |
e(*) |
|
|
real(kind=sp),
|
intent(in) |
|
|
:: |
vl |
|
|
real(kind=sp),
|
intent(in) |
|
|
:: |
vu |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
il |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
iu |
|
|
real(kind=sp),
|
intent(in) |
|
|
:: |
abstol |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
m |
|
|
real(kind=sp),
|
intent(out) |
|
|
:: |
w(*) |
|
|
real(kind=sp),
|
intent(out) |
|
|
:: |
z(ldz,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
ldz |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
isuppz(*) |
|
|
real(kind=sp),
|
intent(out) |
|
|
:: |
work(*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
lwork |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
iwork(*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
liwork |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
info |
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
character(len=1),
|
intent(in) |
|
|
:: |
jobz |
|
|
character(len=1),
|
intent(in) |
|
|
:: |
range |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
n |
|
|
real(kind=dp),
|
intent(inout) |
|
|
:: |
d(*) |
|
|
real(kind=dp),
|
intent(inout) |
|
|
:: |
e(*) |
|
|
real(kind=dp),
|
intent(in) |
|
|
:: |
vl |
|
|
real(kind=dp),
|
intent(in) |
|
|
:: |
vu |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
il |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
iu |
|
|
real(kind=dp),
|
intent(in) |
|
|
:: |
abstol |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
m |
|
|
real(kind=dp),
|
intent(out) |
|
|
:: |
w(*) |
|
|
complex(kind=dp),
|
intent(out) |
|
|
:: |
z(ldz,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
ldz |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
isuppz(*) |
|
|
real(kind=dp),
|
intent(out) |
|
|
:: |
work(*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
lwork |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
iwork(*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
liwork |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
info |
|
Module Procedures