selfMultiplyHiLo method

DD selfMultiplyHiLo(
  1. double yhi,
  2. double ylo
)

Implementation

DD selfMultiplyHiLo(double yhi, double ylo) {
  double hx, tx, hy, ty, C, c;
  C = SPLIT * hi;
  hx = C - hi;
  c = SPLIT * yhi;
  hx = C - hx;
  tx = hi - hx;
  hy = c - yhi;
  C = hi * yhi;
  hy = c - hy;
  ty = yhi - hy;
  c = ((((hx * hy - C) + hx * ty) + tx * hy) + tx * ty) +
      (hi * ylo + lo * yhi);
  double zhi = C + c;
  hx = C - zhi;
  double zlo = c + hx;
  hi = zhi;
  lo = zlo;
  return this;
}