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