\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(\left({\left(\sqrt[3]{a \cdot a + b \cdot b} \cdot \sqrt[3]{a \cdot a + b \cdot b}\right)}^{2} \cdot {\left(\sqrt[3]{a \cdot a + b \cdot b}\right)}^{2} + \left(\left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4\right) + 4 \cdot \left(\left(b \cdot b\right) \cdot \left(3 + a\right)\right)\right) - 1double f(double a, double b) {
double r729 = a;
double r730 = r729 * r729;
double r731 = b;
double r732 = r731 * r731;
double r733 = r730 + r732;
double r734 = 2.0;
double r735 = pow(r733, r734);
double r736 = 4.0;
double r737 = 1.0;
double r738 = r737 - r729;
double r739 = r730 * r738;
double r740 = 3.0;
double r741 = r740 + r729;
double r742 = r732 * r741;
double r743 = r739 + r742;
double r744 = r736 * r743;
double r745 = r735 + r744;
double r746 = r745 - r737;
return r746;
}
double f(double a, double b) {
double r747 = a;
double r748 = r747 * r747;
double r749 = b;
double r750 = r749 * r749;
double r751 = r748 + r750;
double r752 = cbrt(r751);
double r753 = r752 * r752;
double r754 = 2.0;
double r755 = pow(r753, r754);
double r756 = pow(r752, r754);
double r757 = r755 * r756;
double r758 = 1.0;
double r759 = r758 - r747;
double r760 = r748 * r759;
double r761 = 4.0;
double r762 = r760 * r761;
double r763 = r757 + r762;
double r764 = 3.0;
double r765 = r764 + r747;
double r766 = r750 * r765;
double r767 = r761 * r766;
double r768 = r763 + r767;
double r769 = r768 - r758;
return r769;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
rmApplied distribute-lft-in0.2
Applied associate-+r+0.2
Simplified0.2
rmApplied add-cube-cbrt0.7
Applied unpow-prod-down0.7
Final simplification0.7
herbie shell --seed 2020025
(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))