\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(a \cdot a + b \cdot b\right)}^{2} - \left(1 - 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)double f(double a, double b) {
double r307866 = a;
double r307867 = r307866 * r307866;
double r307868 = b;
double r307869 = r307868 * r307868;
double r307870 = r307867 + r307869;
double r307871 = 2.0;
double r307872 = pow(r307870, r307871);
double r307873 = 4.0;
double r307874 = 1.0;
double r307875 = r307874 - r307866;
double r307876 = r307867 * r307875;
double r307877 = 3.0;
double r307878 = r307877 + r307866;
double r307879 = r307869 * r307878;
double r307880 = r307876 + r307879;
double r307881 = r307873 * r307880;
double r307882 = r307872 + r307881;
double r307883 = r307882 - r307874;
return r307883;
}
double f(double a, double b) {
double r307884 = a;
double r307885 = r307884 * r307884;
double r307886 = b;
double r307887 = r307886 * r307886;
double r307888 = r307885 + r307887;
double r307889 = 2.0;
double r307890 = pow(r307888, r307889);
double r307891 = 1.0;
double r307892 = 4.0;
double r307893 = r307891 - r307884;
double r307894 = r307885 * r307893;
double r307895 = 3.0;
double r307896 = r307895 + r307884;
double r307897 = r307887 * r307896;
double r307898 = r307894 + r307897;
double r307899 = r307892 * r307898;
double r307900 = r307891 - r307899;
double r307901 = r307890 - r307900;
return r307901;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
rmApplied add-cube-cbrt0.2
Final simplification0.2
herbie shell --seed 2019304
(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))