\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1\left({\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4\right) - 1double f(double a, double b) {
double r256467 = a;
double r256468 = r256467 * r256467;
double r256469 = b;
double r256470 = r256469 * r256469;
double r256471 = r256468 + r256470;
double r256472 = 2.0;
double r256473 = pow(r256471, r256472);
double r256474 = 4.0;
double r256475 = 1.0;
double r256476 = r256475 + r256467;
double r256477 = r256468 * r256476;
double r256478 = 3.0;
double r256479 = r256478 * r256467;
double r256480 = r256475 - r256479;
double r256481 = r256470 * r256480;
double r256482 = r256477 + r256481;
double r256483 = r256474 * r256482;
double r256484 = r256473 + r256483;
double r256485 = r256484 - r256475;
return r256485;
}
double f(double a, double b) {
double r256486 = a;
double r256487 = r256486 * r256486;
double r256488 = b;
double r256489 = r256488 * r256488;
double r256490 = r256487 + r256489;
double r256491 = 2.0;
double r256492 = pow(r256490, r256491);
double r256493 = 1.0;
double r256494 = r256486 + r256493;
double r256495 = r256487 * r256494;
double r256496 = 3.0;
double r256497 = r256496 * r256486;
double r256498 = r256493 - r256497;
double r256499 = r256489 * r256498;
double r256500 = r256495 + r256499;
double r256501 = 4.0;
double r256502 = r256500 * r256501;
double r256503 = r256492 + r256502;
double r256504 = r256503 - r256493;
return r256504;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
Final simplification0.2
herbie shell --seed 2019194
(FPCore (a b)
:name "Bouland and Aaronson, Equation (25)"
(- (+ (pow (+ (* a a) (* b b)) 2.0) (* 4.0 (+ (* (* a a) (+ 1.0 a)) (* (* b b) (- 1.0 (* 3.0 a)))))) 1.0))