reciprocal method

DD reciprocal()

Returns a DoubleDouble whose value is 1 / this.

@return the reciprocal of this value

Implementation

DD reciprocal() {
  double hc, tc, hy, ty, C, c, U, u;
  C = 1.0 / hi;
  c = SPLIT * C;
  hc = c - C;
  u = SPLIT * hi;
  hc = c - hc;
  tc = C - hc;
  hy = u - hi;
  U = C * hi;
  hy = u - hy;
  ty = hi - hy;
  u = (((hc * hy - U) + hc * ty) + tc * hy) + tc * ty;
  c = ((((1.0 - U) - u)) - C * lo) / hi;

  double zhi = C + c;
  double zlo = (C - zhi) + c;
  return new DD.withHiLo(zhi, zlo);
}