\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1double f(double a, double b) {
double r305812 = a;
double r305813 = r305812 * r305812;
double r305814 = b;
double r305815 = r305814 * r305814;
double r305816 = r305813 + r305815;
double r305817 = 2.0;
double r305818 = pow(r305816, r305817);
double r305819 = 4.0;
double r305820 = r305819 * r305815;
double r305821 = r305818 + r305820;
double r305822 = 1.0;
double r305823 = r305821 - r305822;
return r305823;
}
double f(double a, double b) {
double r305824 = a;
double r305825 = r305824 * r305824;
double r305826 = b;
double r305827 = r305826 * r305826;
double r305828 = r305825 + r305827;
double r305829 = 2.0;
double r305830 = pow(r305828, r305829);
double r305831 = 4.0;
double r305832 = r305831 * r305827;
double r305833 = r305830 + r305832;
double r305834 = 1.0;
double r305835 = r305833 - r305834;
return r305835;
}



Bits error versus a



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