106 SUBROUTINE slas2( F, G, H, SSMIN, SSMAX )
113 REAL F, G, H, SSMAX, SSMIN
120 parameter( zero = 0.0e0 )
122 parameter( one = 1.0e0 )
124 parameter( two = 2.0e0 )
127 REAL 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 slas2(f, g, h, ssmin, ssmax)
SLAS2 computes singular values of a 2-by-2 triangular matrix.