_BISECT(3F) _BISECT(3F)
BISECT, SBISECT - EISPACK routine. This subroutine finds those
eigenvalues of a TRIDIAGONAL SYMMETRIC matrix which lie in a specified
interval, using bisection.
subroutine bisect(n,eps1,d,e,e2,lb,ub,mm,m,w,ind,ierr,rv4,rv5)
integer n, mm, m, ierr
integer ind(mm)
double precision eps1, lb, ub
double precision d(n), e(n), e2(n), w(mm), rv4(n), rv5(n)
subroutine sbisect(n,eps1,d,e,e2,lb,ub,mm,m,w,ind,ierr,rv4,rv5)
integer n, mm, m, ierr
integer ind(mm)
real eps1, lb, ub
real d(n), e(n), e2(n), w(mm), rv4(n), rv5(n)
On INPUT
N is the order of the matrix.
EPS1 is an absolute error tolerance for the computed eigenvalues. If the
input EPS1 is non-positive, it is reset for each submatrix to a default
value, namely, minus the product of the relative machine precision and
the 1-norm of the submatrix.
D contains the diagonal elements of the input matrix.
E contains the subdiagonal elements of the input matrix in its last N-1
positions. E(1) is arbitrary.
E2 contains the squares of the corresponding elements of E. E2(1) is
arbitrary.
LB and UB define the interval to be searched for eigenvalues. If LB is
not less than UB, no eigenvalues will be found.
MM should be set to an upper bound for the number of eigenvalues in the
interval. WARNING. If more than MM eigenvalues are determined to lie in
the interval, an error return is made with no eigenvalues found. On
OUTPUT
EPS1 is unaltered unless it has been reset to its (last) default value.
D and E are unaltered. Elements of E2, corresponding to elements of E
regarded as negligible, have been replaced by zero causing the matrix to
split into a direct sum of submatrices. E2(1) is also set to zero.
Page 1
_BISECT(3F) _BISECT(3F)
M is the number of eigenvalues determined to lie in (LB,UB).
W contains the M eigenvalues in ascending order.
IND contains in its first M positions the submatrix indices associated
with the corresponding eigenvalues in W -- 1 for eigenvalues belonging to
the first submatrix from the top, 2 for those belonging to the second
submatrix, etc.
IERR is set to Zero for normal return, 3*N+1 if M exceeds MM.
RV4 and RV5 are temporary storage arrays. The ALGOL procedure STURMCNT
contained in TRISTURM appears in BISECT in-line. Note that subroutine
TQL1 or IMTQL1 is generally faster than
BISECT , if more than N/4 eigenvalues are to be found. Questions and
comments should be directed to B. S. Garbow, Applied Mathematics
Division, ARGONNE NATIONAL LABORATORY
PPPPaaaaggggeeee 2222 [ Back ]
|