\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(\sqrt[3]{\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} \cdot \sqrt[3]{\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) \cdot \sqrt[3]{\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} + {\left(a \cdot a + b \cdot b\right)}^{2}\right) - 1double f(double a, double b) {
double r5217833 = a;
double r5217834 = r5217833 * r5217833;
double r5217835 = b;
double r5217836 = r5217835 * r5217835;
double r5217837 = r5217834 + r5217836;
double r5217838 = 2.0;
double r5217839 = pow(r5217837, r5217838);
double r5217840 = 4.0;
double r5217841 = 1.0;
double r5217842 = r5217841 + r5217833;
double r5217843 = r5217834 * r5217842;
double r5217844 = 3.0;
double r5217845 = r5217844 * r5217833;
double r5217846 = r5217841 - r5217845;
double r5217847 = r5217836 * r5217846;
double r5217848 = r5217843 + r5217847;
double r5217849 = r5217840 * r5217848;
double r5217850 = r5217839 + r5217849;
double r5217851 = r5217850 - r5217841;
return r5217851;
}
double f(double a, double b) {
double r5217852 = a;
double r5217853 = r5217852 * r5217852;
double r5217854 = 1.0;
double r5217855 = r5217852 + r5217854;
double r5217856 = r5217853 * r5217855;
double r5217857 = b;
double r5217858 = r5217857 * r5217857;
double r5217859 = 3.0;
double r5217860 = r5217859 * r5217852;
double r5217861 = r5217854 - r5217860;
double r5217862 = r5217858 * r5217861;
double r5217863 = r5217856 + r5217862;
double r5217864 = 4.0;
double r5217865 = r5217863 * r5217864;
double r5217866 = cbrt(r5217865);
double r5217867 = r5217866 * r5217866;
double r5217868 = r5217867 * r5217866;
double r5217869 = r5217853 + r5217858;
double r5217870 = 2.0;
double r5217871 = pow(r5217869, r5217870);
double r5217872 = r5217868 + r5217871;
double r5217873 = r5217872 - r5217854;
return r5217873;
}



Bits error versus a



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