\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(\left(a \cdot a\right) \cdot \left(\sqrt[3]{1 + a} \cdot \sqrt[3]{1 + a}\right)\right) \cdot \sqrt[3]{1 + a} + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1double f(double a, double b) {
double r241663 = a;
double r241664 = r241663 * r241663;
double r241665 = b;
double r241666 = r241665 * r241665;
double r241667 = r241664 + r241666;
double r241668 = 2.0;
double r241669 = pow(r241667, r241668);
double r241670 = 4.0;
double r241671 = 1.0;
double r241672 = r241671 + r241663;
double r241673 = r241664 * r241672;
double r241674 = 3.0;
double r241675 = r241674 * r241663;
double r241676 = r241671 - r241675;
double r241677 = r241666 * r241676;
double r241678 = r241673 + r241677;
double r241679 = r241670 * r241678;
double r241680 = r241669 + r241679;
double r241681 = r241680 - r241671;
return r241681;
}
double f(double a, double b) {
double r241682 = a;
double r241683 = r241682 * r241682;
double r241684 = b;
double r241685 = r241684 * r241684;
double r241686 = r241683 + r241685;
double r241687 = 2.0;
double r241688 = pow(r241686, r241687);
double r241689 = 4.0;
double r241690 = 1.0;
double r241691 = r241690 + r241682;
double r241692 = cbrt(r241691);
double r241693 = r241692 * r241692;
double r241694 = r241683 * r241693;
double r241695 = r241694 * r241692;
double r241696 = 3.0;
double r241697 = r241696 * r241682;
double r241698 = r241690 - r241697;
double r241699 = r241685 * r241698;
double r241700 = r241695 + r241699;
double r241701 = r241689 * r241700;
double r241702 = r241688 + r241701;
double r241703 = r241702 - r241690;
return r241703;
}



Bits error versus a



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