106 SUBROUTINE dlas2( F, G, H, SSMIN, SSMAX )
113 DOUBLE PRECISION F, G, H, SSMAX, SSMIN
119 DOUBLE PRECISION ZERO
120 parameter( zero = 0.0d0 )
122 parameter( one = 1.0d0 )
124 parameter( two = 2.0d0 )
127 DOUBLE PRECISION AS, AT, AU, C, FA, FHMN, FHMX, GA, HA
130 INTRINSIC abs, max, min, sqrt
139 IF( fhmn.EQ.zero )
THEN
141 IF( fhmx.EQ.zero )
THEN
144 ssmax = max( fhmx, ga )*sqrt( one+
145 $ ( min( fhmx, ga ) / max( fhmx, ga ) )**2 )
148 IF( ga.LT.fhmx )
THEN
149 as = one + fhmn / fhmx
150 at = ( fhmx-fhmn ) / fhmx
151 au = ( ga / fhmx )**2
152 c = two / ( sqrt( as*as+au )+sqrt( at*at+au ) )
157 IF( au.EQ.zero )
THEN
163 ssmin = ( fhmn*fhmx ) / ga
166 as = one + fhmn / fhmx
167 at = ( fhmx-fhmn ) / fhmx
168 c = one / ( sqrt( one+( as*au )**2 )+
169 $ sqrt( one+( at*au )**2 ) )
170 ssmin = ( fhmn*c )*au
171 ssmin = ssmin + ssmin
subroutine dlas2(F, G, H, SSMIN, SSMAX)
DLAS2 computes singular values of a 2-by-2 triangular matrix.