137 SUBROUTINE dlasv2( F, G, H, SSMIN, SSMAX, SNR, CSR, SNL, CSL )
144 DOUBLE PRECISION CSL, CSR, F, G, H, SNL, SNR, SSMAX, SSMIN
150 DOUBLE PRECISION ZERO
151 parameter( zero = 0.0d0 )
152 DOUBLE PRECISION HALF
153 parameter( half = 0.5d0 )
155 parameter( one = 1.0d0 )
157 parameter( two = 2.0d0 )
158 DOUBLE PRECISION FOUR
159 parameter( four = 4.0d0 )
164 DOUBLE PRECISION A, CLT, CRT, D, FA, FT, GA, GT, HA, HT, L, M,
165 $ MM, R, S, SLT, SRT, T, TEMP, TSIGN, TT
168 INTRINSIC abs, sign, sqrt
171 DOUBLE PRECISION DLAMCH
202 IF( ga.EQ.zero )
THEN
216 IF( ( fa / ga ).LT.dlamch(
'EPS' ) )
THEN
223 ssmin = fa / ( ga / ha )
225 ssmin = ( fa / ga )*ha
277 IF( mm.EQ.zero )
THEN
282 t = sign( two, ft )*sign( one, gt )
284 t = gt / sign( d, ft ) + m / t
287 t = ( m / ( s+t )+m / ( r+l ) )*( one+a )
292 clt = ( crt+srt*m ) / a
293 slt = ( ht / ft )*srt / a
311 $ tsign = sign( one, csr )*sign( one, csl )*sign( one, f )
313 $ tsign = sign( one, snr )*sign( one, csl )*sign( one, g )
315 $ tsign = sign( one, snr )*sign( one, snl )*sign( one, h )
316 ssmax = sign( ssmax, tsign )
317 ssmin = sign( ssmin, tsign*sign( one, f )*sign( one, h ) )
subroutine dlasv2(F, G, H, SSMIN, SSMAX, SNR, CSR, SNL, CSL)
DLASV2 computes the singular value decomposition of a 2-by-2 triangular matrix.