public interface stebz
STEBZ computes the eigenvalues of a symmetric tridiagonal
matrix T. The user may ask for all eigenvalues, all eigenvalues
in the half-open interval (VL, VU], or the IL-th through IU-th
eigenvalues.
To avoid overflow, the matrix must be scaled so that its
largest element is no greater than overflow(1/2) * underflow(1/4) in absolute value, and for greatest
accuracy, it should not be much smaller than that.
See W. Kahan "Accurate Eigenvalues of a Symmetric Tridiagonal
Matrix", Report CS41, Computer Science Dept., Stanford
University, July 21, 1966.
Subroutines
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
character(len=1),
|
intent(in) |
|
|
:: |
range |
|
|
character(len=1),
|
intent(in) |
|
|
:: |
order |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
n |
|
|
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 |
|
|
real(kind=dp),
|
intent(in) |
|
|
:: |
d(*) |
|
|
real(kind=dp),
|
intent(in) |
|
|
:: |
e(*) |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
m |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
nsplit |
|
|
real(kind=dp),
|
intent(out) |
|
|
:: |
w(*) |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
iblock(*) |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
isplit(*) |
|
|
real(kind=dp),
|
intent(out) |
|
|
:: |
work(*) |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
iwork(*) |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
info |
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
character(len=1),
|
intent(in) |
|
|
:: |
range |
|
|
character(len=1),
|
intent(in) |
|
|
:: |
order |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
n |
|
|
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 |
|
|
real(kind=sp),
|
intent(in) |
|
|
:: |
d(*) |
|
|
real(kind=sp),
|
intent(in) |
|
|
:: |
e(*) |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
m |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
nsplit |
|
|
real(kind=sp),
|
intent(out) |
|
|
:: |
w(*) |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
iblock(*) |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
isplit(*) |
|
|
real(kind=sp),
|
intent(out) |
|
|
:: |
work(*) |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
iwork(*) |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
info |
|
Module Procedures