139 SUBROUTINE dlasv2( F, G, H, SSMIN, SSMAX, SNR, CSR, SNL, CSL )
147 DOUBLE PRECISION csl, csr, f, g, h, snl, snr, ssmax, ssmin
153 DOUBLE PRECISION zero
154 parameter( zero = 0.0d0 )
155 DOUBLE PRECISION half
156 parameter( half = 0.5d0 )
158 parameter( one = 1.0d0 )
160 parameter( two = 2.0d0 )
161 DOUBLE PRECISION four
162 parameter( four = 4.0d0 )
167 DOUBLE PRECISION a, clt, crt, d, fa, ft, ga, gt, ha, ht, l, m,
168 $ mm, r, s, slt, srt, t, temp, tsign, tt
171 INTRINSIC abs, sign, sqrt
205 IF( ga.EQ.zero )
THEN
219 IF( ( fa / ga ).LT.
dlamch(
'EPS' ) )
THEN
226 ssmin = fa / ( ga / ha )
228 ssmin = ( fa / ga )*ha
280 IF( mm.EQ.zero )
THEN
285 t = sign( two, ft )*sign( one, gt )
287 t = gt / sign( d, ft ) + m / t
290 t = ( m / ( s+t )+m / ( r+l ) )*( one+a )
295 clt = ( crt+srt*m ) / a
296 slt = ( ht / ft )*srt / a
314 $ tsign = sign( one, csr )*sign( one, csl )*sign( one, f )
316 $ tsign = sign( one, snr )*sign( one, csl )*sign( one, g )
318 $ tsign = sign( one, snr )*sign( one, snl )*sign( one, h )
319 ssmax = sign( ssmax, tsign )
320 ssmin = sign( ssmin, tsign*sign( one, f )*sign( one, h ) )