anchor.diff:  !
         tempa = abs (delsq-dsq)
         tempb = sqrt (dtz*dtz+tempa*zsq)
  -      gam = tempa / (dsign(tempb, dtz)+dtz)
  +      gam = tempa / (sign(tempb, dtz)+dtz)
         temp = tol * (wsq+par*delsq) - gam * gam * wwsq
         If (temp >= zero) Then
            Do 310 i = 1, n
  
positive.code:          vhv = ratio * ratio * vhv
           vhw = ratio * wsq
           temp = half * (whw-vhv)
           temp = temp + dsign (sqrt(temp**2+vhw**2), whw+vhv)
           Do 90 i = 1, n
  90       d (i) = vhw * v (i) + temp * d (i)
        End If
  
negative.code:    Else
        temp = td (k+1) + par
        If (temp <= abs(piv(k))) Then
           d (k+1) = sign (one,-tn(k))
           dhd = piv (k) + temp - two * abs (tn(k))
        Else
           d (k+1) = - tn (k) / temp
  