102 SUBROUTINE dstech( N, A, B, EIG, TOL, WORK, INFO )
114 DOUBLE PRECISION a( * ), b( * ), eig( * ), work( * )
120 DOUBLE PRECISION zero
121 parameter( zero = 0.0d0 )
124 INTEGER bpnt, count, i, isub, j, numl, numu, tpnt
125 DOUBLE PRECISION emin, eps, lower, mx, tuppr, unflep, upper
148 IF( tol.LT.zero )
THEN
156 unflep =
dlamch(
'Safe minimum' ) / eps
163 mx = max( mx, abs( eig( i ) ) )
165 eps = max( eps*mx, unflep )
175 DO 30 j = 2, n + 1 - i
176 IF( work( j ).LT.emin )
THEN
181 IF( isub.NE.n+1-i )
THEN
182 work( isub ) = work( n+1-i )
196 upper = work( tpnt ) + eps
197 lower = work( bpnt ) - eps
204 tuppr = work( bpnt+1 ) + eps
211 lower = work( bpnt ) - eps
217 CALL
dstect( n, a, b, lower, numl )
218 CALL
dstect( n, a, b, upper, numu )
220 IF( count.NE.bpnt-tpnt+1 )
THEN