in commons-statistics-inference/src/main/java/org/apache/commons/statistics/inference/DD.java [1584:1615]
private static DD inverse3(double y, double yy, double yyy, DD q) {
// Long division (1, 0, 0) / (y, yy, yyy)
double r;
double rr;
double rrr;
double t;
// quotient q0 = x / y
final double q0 = 1 / y;
// remainder r0 = x - q0 * y
t = multiply3(y, yy, yyy, q0, q);
r = add3(-t, -q.hi, -q.lo, 1, q);
rr = q.hi;
rrr = q.lo;
// next quotient q1 = r0 / y
final double q1 = r / y;
// remainder r1 = r0 - q1 * y
t = multiply3(y, yy, yyy, q1, q);
r = add3(-t, -q.hi, -q.lo, r, rr, rrr, q);
rr = q.hi;
rrr = q.lo;
// next quotient q2 = r1 / y
final double q2 = r / y;
// remainder r2 = r1 - q2 * y
t = multiply3(y, yy, yyy, q2, q);
r = add3(-t, -q.hi, -q.lo, r, rr, rrr, q);
// next quotient q3 = r2 / y
final double q3 = r / y;
// Collect (q0, q1, q2, q3) to (s0, s1, s2)
t = norm3(q0, q1, q2, q3, q);
// Reduce to (s0, s1)
return fastTwoSum(t, q.hi + q.lo, q);
}