86 SUBROUTINE ssvdct( N, S, E, SHIFT, NUM )
104 parameter( one = 1.0e0 )
106 parameter( zero = 0.0e0 )
110 REAL M1, M2, MX, OVFL, SOV, SSHIFT, SSUN, SUN, TMP,
118 INTRINSIC abs, max, sqrt
124 unfl = 2*slamch(
'Safe minimum' )
131 mx = max( mx, abs( s( i+1 ) ), abs( e( i ) ) )
134 IF( mx.EQ.zero )
THEN
135 IF( shift.LT.zero )
THEN
161 sshift = ( shift*m1 )*m2
172 tmp = ( s( 1 )*m1 )*m2
173 u = -tmp*( tmp / u ) - sshift
184 tmp = ( e( i )*m1 )*m2
185 u = -tmp*( tmp / u ) - sshift
195 tmp = ( s( i+1 )*m1 )*m2
196 u = -tmp*( tmp / u ) - sshift
subroutine ssvdct(n, s, e, shift, num)
SSVDCT