88 SUBROUTINE ssvdct( N, S, E, SHIFT, NUM )
107 parameter( one = 1.0e0 )
109 parameter( zero = 0.0e0 )
113 REAL m1, m2, mx, ovfl, sov, sshift, ssun, sun, tmp,
121 INTRINSIC abs, max, sqrt
127 unfl = 2*
slamch(
'Safe minimum' )
134 mx = max( mx, abs( s( i+1 ) ), abs( e( i ) ) )
137 IF( mx.EQ.zero )
THEN
138 IF( shift.LT.zero )
THEN
164 sshift = ( shift*m1 )*m2
175 tmp = ( s( 1 )*m1 )*m2
176 u = -tmp*( tmp / u ) - sshift
187 tmp = ( e( i )*m1 )*m2
188 u = -tmp*( tmp / u ) - sshift
198 tmp = ( s( i+1 )*m1 )*m2
199 u = -tmp*( tmp / u ) - sshift