135 SUBROUTINE dlarrc( JOBT, N, VL, VU, D, E, PIVMIN,
136 $ EIGCNT, LCNT, RCNT, INFO )
144 INTEGER EIGCNT, INFO, LCNT, N, RCNT
145 DOUBLE PRECISION PIVMIN, VL, VU
148 DOUBLE PRECISION D( * ), E( * )
154 DOUBLE PRECISION ZERO
155 parameter( zero = 0.0d0 )
160 DOUBLE PRECISION LPIVOT, RPIVOT, SL, SU, TMP, TMP2
180 matt = lsame( jobt,
'T' )
187 IF( lpivot.LE.zero )
THEN
190 IF( rpivot.LE.zero )
THEN
195 lpivot = ( d( i+1 )-vl ) - tmp/lpivot
196 rpivot = ( d( i+1 )-vu ) - tmp/rpivot
197 IF( lpivot.LE.zero )
THEN
200 IF( rpivot.LE.zero )
THEN
211 IF( lpivot.LE.zero )
THEN
214 IF( rpivot.LE.zero )
THEN
217 tmp = e(i) * d(i) * e(i)
220 IF( tmp2.EQ.zero )
THEN
227 IF( tmp2.EQ.zero )
THEN
235 IF( lpivot.LE.zero )
THEN
238 IF( rpivot.LE.zero )
THEN
subroutine dlarrc(jobt, n, vl, vu, d, e, pivmin, eigcnt, lcnt, rcnt, info)
DLARRC computes the number of eigenvalues of the symmetric tridiagonal matrix.