81 SUBROUTINE dstect( N, A, B, SHIFT, NUM )
89 DOUBLE PRECISION SHIFT
92 DOUBLE PRECISION A( * ), B( * )
98 DOUBLE PRECISION ZERO, ONE, THREE
99 parameter( zero = 0.0d0, one = 1.0d0, three = 3.0d0 )
103 DOUBLE PRECISION M1, M2, MX, OVFL, SOV, SSHIFT, SSUN, SUN, TMP,
107 DOUBLE PRECISION DLAMCH
111 INTRINSIC abs, max, sqrt
117 unfl = dlamch(
'Safe minimum' )
118 ovfl = dlamch(
'Overflow' )
124 mx = max( mx, abs( a( i+1 ) ), abs( b( i ) ) )
129 IF( shift.GE.three*mx )
THEN
133 IF( shift.LT.-three*mx )
THEN
156 sshift = ( shift*m1 )*m2
157 u = ( a( 1 )*m1 )*m2 - sshift
168 tmp = ( b( i-1 )*m1 )*m2
169 u = ( ( a( i )*m1 )*m2-tmp*( tmp / u ) ) - sshift
subroutine dstect(n, a, b, shift, num)
DSTECT