fortran-lapack
Loading...
Searching...
No Matches
la_lapack::laebz Interface Reference

LAEBZ: contains the iteration loops which compute and use the function N(w), which is the count of eigenvalues of a symmetric tridiagonal matrix T less than or equal to its argument w. It performs a choice of two types of loops: IJOB=1, followed by IJOB=2: It takes as input a list of intervals and returns a list of sufficiently small intervals whose union contains the same eigenvalues as the union of the original intervals. The input intervals are (AB(j,1),AB(j,2)], j=1,...,MINP. The output interval (AB(j,1),AB(j,2)] will contain eigenvalues NAB(j,1)+1,...,NAB(j,2), where 1 <= j <= MOUT. IJOB=3: It performs a binary search in each input interval (AB(j,1),AB(j,2)] for a point w(j) such that N(w(j))=NVAL(j), and uses C(j) as the starting point of the search. If such a w(j) is found, then on output AB(j,1)=AB(j,2)=w. If no such w(j) is found, then on output (AB(j,1),AB(j,2)] will be a small interval containing the point where N(w) jumps through NVAL(j), unless that point lies outside the initial interval. Note that the intervals are in all cases half-open intervals, i.e., of the form (a,b] , which includes b but not a . To avoid underflow, the matrix should be scaled so that its largest element is no greater than overflow**(1/2) * underflow**(1/4) in absolute value. To assure the most accurate computation of small eigenvalues, the matrix should be scaled to be not much smaller than that, either. See W. Kahan "Accurate Eigenvalues of a Symmetric Tridiagonal Matrix", Report CS41, Computer Science Dept., Stanford University, July 21, 1966 Note: the arguments are, in general, not checked for unreasonable values. More...

Public Member Functions

pure subroutine dlaebz (ijob, nitmax, n, mmax, minp, nbmin, abstol, reltol, pivmin, d, e, e2, nval, ab, c, mout, nab, work, iwork, info)
 
 la_dlaebz
 
 la_qlaebz
 
pure subroutine slaebz (ijob, nitmax, n, mmax, minp, nbmin, abstol, reltol, pivmin, d, e, e2, nval, ab, c, mout, nab, work, iwork, info)
 
 la_slaebz
 

Detailed Description

LAEBZ: contains the iteration loops which compute and use the function N(w), which is the count of eigenvalues of a symmetric tridiagonal matrix T less than or equal to its argument w. It performs a choice of two types of loops: IJOB=1, followed by IJOB=2: It takes as input a list of intervals and returns a list of sufficiently small intervals whose union contains the same eigenvalues as the union of the original intervals. The input intervals are (AB(j,1),AB(j,2)], j=1,...,MINP. The output interval (AB(j,1),AB(j,2)] will contain eigenvalues NAB(j,1)+1,...,NAB(j,2), where 1 <= j <= MOUT. IJOB=3: It performs a binary search in each input interval (AB(j,1),AB(j,2)] for a point w(j) such that N(w(j))=NVAL(j), and uses C(j) as the starting point of the search. If such a w(j) is found, then on output AB(j,1)=AB(j,2)=w. If no such w(j) is found, then on output (AB(j,1),AB(j,2)] will be a small interval containing the point where N(w) jumps through NVAL(j), unless that point lies outside the initial interval. Note that the intervals are in all cases half-open intervals, i.e., of the form (a,b] , which includes b but not a . To avoid underflow, the matrix should be scaled so that its largest element is no greater than overflow**(1/2) * underflow**(1/4) in absolute value. To assure the most accurate computation of small eigenvalues, the matrix should be scaled to be not much smaller than that, either. See W. Kahan "Accurate Eigenvalues of a Symmetric Tridiagonal Matrix", Report CS41, Computer Science Dept., Stanford University, July 21, 1966 Note: the arguments are, in general, not checked for unreasonable values.

Member Function/Subroutine Documentation

◆ dlaebz()

pure subroutine la_lapack::laebz::dlaebz ( integer(ilp), intent(in)  ijob,
integer(ilp), intent(in)  nitmax,
integer(ilp), intent(in)  n,
integer(ilp), intent(in)  mmax,
integer(ilp), intent(in)  minp,
integer(ilp), intent(in)  nbmin,
real(dp), intent(in)  abstol,
real(dp), intent(in)  reltol,
real(dp), intent(in)  pivmin,
real(dp), dimension(*), intent(in)  d,
real(dp), dimension(*), intent(in)  e,
real(dp), dimension(*), intent(in)  e2,
integer(ilp), dimension(*), intent(inout)  nval,
real(dp), dimension(mmax,*), intent(inout)  ab,
real(dp), dimension(*), intent(inout)  c,
integer(ilp), intent(out)  mout,
integer(ilp), dimension(mmax,*), intent(inout)  nab,
real(dp), dimension(*), intent(out)  work,
integer(ilp), dimension(*), intent(out)  iwork,
integer(ilp), intent(out)  info 
)

◆ la_dlaebz()

la_lapack::laebz::la_dlaebz

◆ la_qlaebz()

la_lapack::laebz::la_qlaebz

◆ la_slaebz()

la_lapack::laebz::la_slaebz

◆ slaebz()

pure subroutine la_lapack::laebz::slaebz ( integer(ilp), intent(in)  ijob,
integer(ilp), intent(in)  nitmax,
integer(ilp), intent(in)  n,
integer(ilp), intent(in)  mmax,
integer(ilp), intent(in)  minp,
integer(ilp), intent(in)  nbmin,
real(sp), intent(in)  abstol,
real(sp), intent(in)  reltol,
real(sp), intent(in)  pivmin,
real(sp), dimension(*), intent(in)  d,
real(sp), dimension(*), intent(in)  e,
real(sp), dimension(*), intent(in)  e2,
integer(ilp), dimension(*), intent(inout)  nval,
real(sp), dimension(mmax,*), intent(inout)  ab,
real(sp), dimension(*), intent(inout)  c,
integer(ilp), intent(out)  mout,
integer(ilp), dimension(mmax,*), intent(inout)  nab,
real(sp), dimension(*), intent(out)  work,
integer(ilp), dimension(*), intent(out)  iwork,
integer(ilp), intent(out)  info 
)

The documentation for this interface was generated from the following file: