\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(3 + a\right)\right)\right) - 1\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(3 + a\right)\right)\right) - 1double f(double a, double b) {
double r178526 = a;
double r178527 = r178526 * r178526;
double r178528 = b;
double r178529 = r178528 * r178528;
double r178530 = r178527 + r178529;
double r178531 = 2.0;
double r178532 = pow(r178530, r178531);
double r178533 = 4.0;
double r178534 = 1.0;
double r178535 = r178534 - r178526;
double r178536 = r178527 * r178535;
double r178537 = 3.0;
double r178538 = r178537 + r178526;
double r178539 = r178529 * r178538;
double r178540 = r178536 + r178539;
double r178541 = r178533 * r178540;
double r178542 = r178532 + r178541;
double r178543 = r178542 - r178534;
return r178543;
}
double f(double a, double b) {
double r178544 = a;
double r178545 = r178544 * r178544;
double r178546 = b;
double r178547 = r178546 * r178546;
double r178548 = r178545 + r178547;
double r178549 = 2.0;
double r178550 = pow(r178548, r178549);
double r178551 = 4.0;
double r178552 = 1.0;
double r178553 = r178552 - r178544;
double r178554 = r178545 * r178553;
double r178555 = 3.0;
double r178556 = r178555 + r178544;
double r178557 = r178547 * r178556;
double r178558 = r178554 + r178557;
double r178559 = r178551 * r178558;
double r178560 = r178550 + r178559;
double r178561 = r178560 - r178552;
return r178561;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
Final simplification0.2
herbie shell --seed 2019325
(FPCore (a b)
:name "Bouland and Aaronson, Equation (24)"
:precision binary64
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (- 1 a)) (* (* b b) (+ 3 a))))) 1))