\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} + 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) - 1double f(double a, double b) {
double r206767 = a;
double r206768 = r206767 * r206767;
double r206769 = b;
double r206770 = r206769 * r206769;
double r206771 = r206768 + r206770;
double r206772 = 2.0;
double r206773 = pow(r206771, r206772);
double r206774 = 4.0;
double r206775 = 1.0;
double r206776 = r206775 + r206767;
double r206777 = r206768 * r206776;
double r206778 = 3.0;
double r206779 = r206778 * r206767;
double r206780 = r206775 - r206779;
double r206781 = r206770 * r206780;
double r206782 = r206777 + r206781;
double r206783 = r206774 * r206782;
double r206784 = r206773 + r206783;
double r206785 = r206784 - r206775;
return r206785;
}
double f(double a, double b) {
double r206786 = a;
double r206787 = r206786 * r206786;
double r206788 = b;
double r206789 = r206788 * r206788;
double r206790 = r206787 + r206789;
double r206791 = 2.0;
double r206792 = pow(r206790, r206791);
double r206793 = 4.0;
double r206794 = 1.0;
double r206795 = r206794 + r206786;
double r206796 = r206787 * r206795;
double r206797 = 3.0;
double r206798 = r206797 * r206786;
double r206799 = r206794 - r206798;
double r206800 = r206789 * r206799;
double r206801 = r206796 + r206800;
double r206802 = r206793 * r206801;
double r206803 = r206792 + r206802;
double r206804 = r206803 - r206794;
return r206804;
}



Bits error versus a



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