double f(double a, double b) {
double r56499698 = a;
double r56499699 = r56499698 * r56499698;
double r56499700 = b;
double r56499701 = r56499700 * r56499700;
double r56499702 = r56499699 + r56499701;
double r56499703 = 2.0;
double r56499704 = pow(r56499702, r56499703);
double r56499705 = 4.0;
double r56499706 = 1.0;
double r56499707 = r56499706 + r56499698;
double r56499708 = r56499699 * r56499707;
double r56499709 = 3.0;
double r56499710 = r56499709 * r56499698;
double r56499711 = r56499706 - r56499710;
double r56499712 = r56499701 * r56499711;
double r56499713 = r56499708 + r56499712;
double r56499714 = r56499705 * r56499713;
double r56499715 = r56499704 + r56499714;
double r56499716 = r56499715 - r56499706;
return r56499716;
}
double f(double a, double b) {
double r56499717 = b;
double r56499718 = r56499717 * r56499717;
double r56499719 = -3.0;
double r56499720 = a;
double r56499721 = 1.0;
double r56499722 = fma(r56499719, r56499720, r56499721);
double r56499723 = r56499720 * r56499720;
double r56499724 = fma(r56499723, r56499720, r56499723);
double r56499725 = fma(r56499718, r56499722, r56499724);
double r56499726 = 4.0;
double r56499727 = fma(r56499717, r56499717, r56499723);
double r56499728 = -1.0;
double r56499729 = fma(r56499727, r56499727, r56499728);
double r56499730 = fma(r56499725, r56499726, r56499729);
return r56499730;
}
\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(b \cdot b\right) \cdot \left((-3 \cdot a + 1)_*\right) + \left((\left(a \cdot a\right) \cdot a + \left(a \cdot a\right))_*\right))_*\right) \cdot 4 + \left((\left((b \cdot b + \left(a \cdot a\right))_*\right) \cdot \left((b \cdot b + \left(a \cdot a\right))_*\right) + -1)_*\right))_*



Bits error versus a



Bits error versus b
Initial program 0.2
Simplified0.2
Taylor expanded around inf 0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019101 +o rules:numerics
(FPCore (a b)
:name "Bouland and Aaronson, Equation (25)"
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (+ 1 a)) (* (* b b) (- 1 (* 3 a)))))) 1))