\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(\left(a \cdot a\right) \cdot a + \left(b \cdot b + a \cdot a\right)\right) \cdot 4 + \left(-12 \cdot \left(\left(b \cdot b\right) \cdot a\right) + {\left(\sqrt{b \cdot b + a \cdot a}\right)}^{4}\right)\right) - 1double f(double a, double b) {
double r7790820 = a;
double r7790821 = r7790820 * r7790820;
double r7790822 = b;
double r7790823 = r7790822 * r7790822;
double r7790824 = r7790821 + r7790823;
double r7790825 = 2.0;
double r7790826 = pow(r7790824, r7790825);
double r7790827 = 4.0;
double r7790828 = 1.0;
double r7790829 = r7790828 + r7790820;
double r7790830 = r7790821 * r7790829;
double r7790831 = 3.0;
double r7790832 = r7790831 * r7790820;
double r7790833 = r7790828 - r7790832;
double r7790834 = r7790823 * r7790833;
double r7790835 = r7790830 + r7790834;
double r7790836 = r7790827 * r7790835;
double r7790837 = r7790826 + r7790836;
double r7790838 = r7790837 - r7790828;
return r7790838;
}
double f(double a, double b) {
double r7790839 = a;
double r7790840 = r7790839 * r7790839;
double r7790841 = r7790840 * r7790839;
double r7790842 = b;
double r7790843 = r7790842 * r7790842;
double r7790844 = r7790843 + r7790840;
double r7790845 = r7790841 + r7790844;
double r7790846 = 4.0;
double r7790847 = r7790845 * r7790846;
double r7790848 = -12.0;
double r7790849 = r7790843 * r7790839;
double r7790850 = r7790848 * r7790849;
double r7790851 = sqrt(r7790844);
double r7790852 = pow(r7790851, r7790846);
double r7790853 = r7790850 + r7790852;
double r7790854 = r7790847 + r7790853;
double r7790855 = 1.0;
double r7790856 = r7790854 - r7790855;
return r7790856;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
Simplified0.2
rmApplied add-sqr-sqrt0.2
Applied associate-*l*0.1
rmApplied add-sqr-sqrt0.1
Applied cube-unmult0.1
Applied pow10.1
Applied pow-prod-up0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019144
(FPCore (a b)
:name "Bouland and Aaronson, Equation (25)"
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (+ 1 a)) (* (* b b) (- 1 (* 3 a)))))) 1))