\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\mathsf{fma}\left(\left(\sqrt{\sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2}}} \cdot \sqrt{\sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2}}}\right) \cdot \sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2}}, \sqrt[3]{\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2}}} \cdot \sqrt[3]{\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2}}}, 4 \cdot \left(\left(1 - a\right) \cdot \left(a \cdot a\right) + \left(b \cdot b\right) \cdot \left(3 + a\right)\right)\right) - 1double f(double a, double b) {
double r14784724 = a;
double r14784725 = r14784724 * r14784724;
double r14784726 = b;
double r14784727 = r14784726 * r14784726;
double r14784728 = r14784725 + r14784727;
double r14784729 = 2.0;
double r14784730 = pow(r14784728, r14784729);
double r14784731 = 4.0;
double r14784732 = 1.0;
double r14784733 = r14784732 - r14784724;
double r14784734 = r14784725 * r14784733;
double r14784735 = 3.0;
double r14784736 = r14784735 + r14784724;
double r14784737 = r14784727 * r14784736;
double r14784738 = r14784734 + r14784737;
double r14784739 = r14784731 * r14784738;
double r14784740 = r14784730 + r14784739;
double r14784741 = r14784740 - r14784732;
return r14784741;
}
double f(double a, double b) {
double r14784742 = a;
double r14784743 = r14784742 * r14784742;
double r14784744 = b;
double r14784745 = r14784744 * r14784744;
double r14784746 = r14784743 + r14784745;
double r14784747 = 2.0;
double r14784748 = pow(r14784746, r14784747);
double r14784749 = cbrt(r14784748);
double r14784750 = sqrt(r14784749);
double r14784751 = r14784750 * r14784750;
double r14784752 = r14784751 * r14784749;
double r14784753 = sqrt(r14784748);
double r14784754 = cbrt(r14784753);
double r14784755 = r14784754 * r14784754;
double r14784756 = 4.0;
double r14784757 = 1.0;
double r14784758 = r14784757 - r14784742;
double r14784759 = r14784758 * r14784743;
double r14784760 = 3.0;
double r14784761 = r14784760 + r14784742;
double r14784762 = r14784745 * r14784761;
double r14784763 = r14784759 + r14784762;
double r14784764 = r14784756 * r14784763;
double r14784765 = fma(r14784752, r14784755, r14784764);
double r14784766 = r14784765 - r14784757;
return r14784766;
}



Bits error versus a



Bits error versus b
Initial program 0.2
rmApplied add-cube-cbrt0.5
Applied fma-def0.5
rmApplied add-sqr-sqrt0.5
Applied cbrt-prod0.5
rmApplied add-sqr-sqrt0.5
Final simplification0.5
herbie shell --seed 2019174 +o rules:numerics
(FPCore (a b)
:name "Bouland and Aaronson, Equation (24)"
(- (+ (pow (+ (* a a) (* b b)) 2.0) (* 4.0 (+ (* (* a a) (- 1.0 a)) (* (* b b) (+ 3.0 a))))) 1.0))