stegr Interface

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

public pure subroutine cstegr(jobz, range, n, d, e, vl, vu, il, iu, abstol, m, w, z, ldz, isuppz, work, lwork, iwork, liwork, info)

Arguments

Type IntentOptional 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

public pure subroutine dstegr(jobz, range, n, d, e, vl, vu, il, iu, abstol, m, w, z, ldz, isuppz, work, lwork, iwork, liwork, info)

Arguments

Type IntentOptional 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

public pure subroutine sstegr(jobz, range, n, d, e, vl, vu, il, iu, abstol, m, w, z, ldz, isuppz, work, lwork, iwork, liwork, info)

Arguments

Type IntentOptional 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

public pure subroutine zstegr(jobz, range, n, d, e, vl, vu, il, iu, abstol, m, w, z, ldz, isuppz, work, lwork, iwork, liwork, info)

Arguments

Type IntentOptional 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

public interface stdlib_cstegr()

Arguments

None

public interface stdlib_dstegr()

Arguments

None

public interface stdlib_sstegr()

Arguments

None

public interface stdlib_zstegr()

Arguments

None