108 SUBROUTINE dlas2( F, G, H, SSMIN, SSMAX )
116 DOUBLE PRECISION F, G, H, SSMAX, SSMIN
122 DOUBLE PRECISION ZERO
123 parameter ( zero = 0.0d0 )
125 parameter ( one = 1.0d0 )
127 parameter ( two = 2.0d0 )
130 DOUBLE PRECISION AS, AT, AU, C, FA, FHMN, FHMX, GA, HA
133 INTRINSIC abs, max, min, sqrt
142 IF( fhmn.EQ.zero )
THEN
144 IF( fhmx.EQ.zero )
THEN
147 ssmax = max( fhmx, ga )*sqrt( one+
148 $ ( min( fhmx, ga ) / max( fhmx, ga ) )**2 )
151 IF( ga.LT.fhmx )
THEN
152 as = one + fhmn / fhmx
153 at = ( fhmx-fhmn ) / fhmx
154 au = ( ga / fhmx )**2
155 c = two / ( sqrt( as*as+au )+sqrt( at*at+au ) )
160 IF( au.EQ.zero )
THEN
166 ssmin = ( fhmn*fhmx ) / ga
169 as = one + fhmn / fhmx
170 at = ( fhmx-fhmn ) / fhmx
171 c = one / ( sqrt( one+( as*au )**2 )+
172 $ sqrt( one+( at*au )**2 ) )
173 ssmin = ( fhmn*c )*au
174 ssmin = ssmin + ssmin
subroutine dlas2(F, G, H, SSMIN, SSMAX)
DLAS2 computes singular values of a 2-by-2 triangular matrix.