102 SUBROUTINE dlas2( F, G, H, SSMIN, SSMAX )
109 DOUBLE PRECISION F, G, H, SSMAX, SSMIN
115 DOUBLE PRECISION ZERO
116 parameter( zero = 0.0d0 )
118 parameter( one = 1.0d0 )
120 parameter( two = 2.0d0 )
123 DOUBLE PRECISION AS, AT, AU, C, FA, FHMN, FHMX, GA, HA
126 INTRINSIC abs, max, min, sqrt
135 IF( fhmn.EQ.zero )
THEN
137 IF( fhmx.EQ.zero )
THEN
140 ssmax = max( fhmx, ga )*sqrt( one+
141 $ ( min( fhmx, ga ) / max( fhmx, ga ) )**2 )
144 IF( ga.LT.fhmx )
THEN
145 as = one + fhmn / fhmx
146 at = ( fhmx-fhmn ) / fhmx
147 au = ( ga / fhmx )**2
148 c = two / ( sqrt( as*as+au )+sqrt( at*at+au ) )
153 IF( au.EQ.zero )
THEN
159 ssmin = ( fhmn*fhmx ) / ga
162 as = one + fhmn / fhmx
163 at = ( fhmx-fhmn ) / fhmx
164 c = one / ( sqrt( one+( as*au )**2 )+
165 $ sqrt( one+( at*au )**2 ) )
166 ssmin = ( fhmn*c )*au
167 ssmin = ssmin + ssmin
subroutine dlas2(f, g, h, ssmin, ssmax)
DLAS2 computes singular values of a 2-by-2 triangular matrix.