\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 r106553 = a;
double r106554 = r106553 * r106553;
double r106555 = b;
double r106556 = r106555 * r106555;
double r106557 = r106554 + r106556;
double r106558 = 2.0;
double r106559 = pow(r106557, r106558);
double r106560 = 4.0;
double r106561 = 1.0;
double r106562 = r106561 + r106553;
double r106563 = r106554 * r106562;
double r106564 = 3.0;
double r106565 = r106564 * r106553;
double r106566 = r106561 - r106565;
double r106567 = r106556 * r106566;
double r106568 = r106563 + r106567;
double r106569 = r106560 * r106568;
double r106570 = r106559 + r106569;
double r106571 = r106570 - r106561;
return r106571;
}
double f(double a, double b) {
double r106572 = a;
double r106573 = r106572 * r106572;
double r106574 = b;
double r106575 = r106574 * r106574;
double r106576 = r106573 + r106575;
double r106577 = 2.0;
double r106578 = pow(r106576, r106577);
double r106579 = 1.0;
double r106580 = r106572 + r106579;
double r106581 = r106573 * r106580;
double r106582 = 3.0;
double r106583 = r106582 * r106572;
double r106584 = r106579 - r106583;
double r106585 = r106575 * r106584;
double r106586 = r106581 + r106585;
double r106587 = 4.0;
double r106588 = r106586 * r106587;
double r106589 = r106578 + r106588;
double r106590 = r106589 - r106579;
return r106590;
}



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))