137 SUBROUTINE dlasv2( F, G, H, SSMIN, SSMAX, SNR, CSR, SNL, CSL )
144 DOUBLE PRECISION CSL, , F, G, H, , 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
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.EQ.
IF( MMZERO ) 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.