divideDD method

DD divideDD(
  1. DD y
)

Computes a new DoubleDouble whose value is (this / y).

@param y the divisor @return a new object with the value (this / y)

Implementation

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

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