83 SUBROUTINE dstect( N, A, B, SHIFT, NUM )
92 DOUBLE PRECISION SHIFT
95 DOUBLE PRECISION A( * ), B( * )
101 DOUBLE PRECISION ZERO, ONE, THREE
102 parameter ( zero = 0.0d0, one = 1.0d0, three = 3.0d0 )
106 DOUBLE PRECISION M1, M2, MX, OVFL, SOV, SSHIFT, SSUN, SUN, TMP,
110 DOUBLE PRECISION DLAMCH
114 INTRINSIC abs, max, sqrt
120 unfl = dlamch(
'Safe minimum' )
121 ovfl = dlamch(
'Overflow' )
127 mx = max( mx, abs( a( i+1 ) ), abs( b( i ) ) )
132 IF( shift.GE.three*mx )
THEN
136 IF( shift.LT.-three*mx )
THEN
159 sshift = ( shift*m1 )*m2
160 u = ( a( 1 )*m1 )*m2 - sshift
171 tmp = ( b( i-1 )*m1 )*m2
172 u = ( ( a( i )*m1 )*m2-tmp*( tmp / u ) ) - sshift
subroutine dstect(N, A, B, SHIFT, NUM)
DSTECT