\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(b \cdot b\right) \cdot \left(4 - a \cdot 12\right) + \left(4 \cdot \left(a \cdot a\right) + \left(\left(4 \cdot \left(a \cdot a\right)\right) \cdot a + \left({\left(\sqrt{a \cdot a + b \cdot b}\right)}^{4} - 1\right)\right)\right)double f(double a, double b) {
double r9172767 = a;
double r9172768 = r9172767 * r9172767;
double r9172769 = b;
double r9172770 = r9172769 * r9172769;
double r9172771 = r9172768 + r9172770;
double r9172772 = 2.0;
double r9172773 = pow(r9172771, r9172772);
double r9172774 = 4.0;
double r9172775 = 1.0;
double r9172776 = r9172775 + r9172767;
double r9172777 = r9172768 * r9172776;
double r9172778 = 3.0;
double r9172779 = r9172778 * r9172767;
double r9172780 = r9172775 - r9172779;
double r9172781 = r9172770 * r9172780;
double r9172782 = r9172777 + r9172781;
double r9172783 = r9172774 * r9172782;
double r9172784 = r9172773 + r9172783;
double r9172785 = r9172784 - r9172775;
return r9172785;
}
double f(double a, double b) {
double r9172786 = b;
double r9172787 = r9172786 * r9172786;
double r9172788 = 4.0;
double r9172789 = a;
double r9172790 = 12.0;
double r9172791 = r9172789 * r9172790;
double r9172792 = r9172788 - r9172791;
double r9172793 = r9172787 * r9172792;
double r9172794 = r9172789 * r9172789;
double r9172795 = r9172788 * r9172794;
double r9172796 = r9172795 * r9172789;
double r9172797 = r9172794 + r9172787;
double r9172798 = sqrt(r9172797);
double r9172799 = pow(r9172798, r9172788);
double r9172800 = 1.0;
double r9172801 = r9172799 - r9172800;
double r9172802 = r9172796 + r9172801;
double r9172803 = r9172795 + r9172802;
double r9172804 = r9172793 + r9172803;
return r9172804;
}



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
rmApplied pow10.1
Applied pow-prod-up0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019135
(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))