117 SUBROUTINE dlasd5( I, D, Z, DELTA, RHO, DSIGMA, WORK )
126 DOUBLE PRECISION dsigma, rho
129 DOUBLE PRECISION d( 2 ), delta( 2 ), work( 2 ), z( 2 )
135 DOUBLE PRECISION zero, one, two, three, four
136 parameter( zero = 0.0d+0, one = 1.0d+0, two = 2.0d+0,
137 $ three = 3.0d+0, four = 4.0d+0 )
140 DOUBLE PRECISION b, c, del, delsq, tau, w
147 del = d( 2 ) - d( 1 )
148 delsq = del*( d( 2 )+d( 1 ) )
150 w = one + four*rho*( z( 2 )*z( 2 ) / ( d( 1 )+three*d( 2 ) )-
151 $ z( 1 )*z( 1 ) / ( three*d( 1 )+d( 2 ) ) ) / del
153 b = delsq + rho*( z( 1 )*z( 1 )+z( 2 )*z( 2 ) )
154 c = rho*z( 1 )*z( 1 )*delsq
160 tau = two*c / ( b+sqrt( abs( b*b-four*c ) ) )
164 tau = tau / ( d( 1 )+sqrt( d( 1 )*d( 1 )+tau ) )
165 dsigma = d( 1 ) + tau
167 delta( 2 ) = del - tau
168 work( 1 ) = two*d( 1 ) + tau
169 work( 2 ) = ( d( 1 )+tau ) + d( 2 )
173 b = -delsq + rho*( z( 1 )*z( 1 )+z( 2 )*z( 2 ) )
174 c = rho*z( 2 )*z( 2 )*delsq
179 tau = -two*c / ( b+sqrt( b*b+four*c ) )
181 tau = ( b-sqrt( b*b+four*c ) ) / two
186 tau = tau / ( d( 2 )+sqrt( abs( d( 2 )*d( 2 )+tau ) ) )
187 dsigma = d( 2 ) + tau
188 delta( 1 ) = -( del+tau )
190 work( 1 ) = d( 1 ) + tau + d( 2 )
191 work( 2 ) = two*d( 2 ) + tau
202 b = -delsq + rho*( z( 1 )*z( 1 )+z( 2 )*z( 2 ) )
203 c = rho*z( 2 )*z( 2 )*delsq
208 tau = ( b+sqrt( b*b+four*c ) ) / two
210 tau = two*c / ( -b+sqrt( b*b+four*c ) )
215 tau = tau / ( d( 2 )+sqrt( d( 2 )*d( 2 )+tau ) )
216 dsigma = d( 2 ) + tau
217 delta( 1 ) = -( del+tau )
219 work( 1 ) = d( 1 ) + tau + d( 2 )
220 work( 2 ) = two*d( 2 ) + tau