code: private int divadd(int[] a, int[] result, int offset) {
          long carry = 0;
  
          for (int j=a.length-1; j >= 0; j--) {
              long sum = (a[j] & LONG_MASK) +
                         (result[j+offset] & LONG_MASK) + carry;
              result[j+offset] = (int)sum;
              carry = sum >>> 32;
          }
          return (int)carry;
      }
docs: A primitive used for division. This method adds in one multiple of the
  divisor a back to the dividend result at a specified offset. It is used
  when qhat was estimated too large, and must be adjusted.