\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(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a + 3\right) \cdot \left(b \cdot b\right) + \left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4\right) - 1double f(double a, double b) {
double r8924798 = a;
double r8924799 = r8924798 * r8924798;
double r8924800 = b;
double r8924801 = r8924800 * r8924800;
double r8924802 = r8924799 + r8924801;
double r8924803 = 2.0;
double r8924804 = pow(r8924802, r8924803);
double r8924805 = 4.0;
double r8924806 = 1.0;
double r8924807 = r8924806 - r8924798;
double r8924808 = r8924799 * r8924807;
double r8924809 = 3.0;
double r8924810 = r8924809 + r8924798;
double r8924811 = r8924801 * r8924810;
double r8924812 = r8924808 + r8924811;
double r8924813 = r8924805 * r8924812;
double r8924814 = r8924804 + r8924813;
double r8924815 = r8924814 - r8924806;
return r8924815;
}
double f(double a, double b) {
double r8924816 = a;
double r8924817 = r8924816 * r8924816;
double r8924818 = b;
double r8924819 = r8924818 * r8924818;
double r8924820 = r8924817 + r8924819;
double r8924821 = 2.0;
double r8924822 = pow(r8924820, r8924821);
double r8924823 = 3.0;
double r8924824 = r8924816 + r8924823;
double r8924825 = r8924824 * r8924819;
double r8924826 = 1.0;
double r8924827 = r8924826 - r8924816;
double r8924828 = r8924817 * r8924827;
double r8924829 = r8924825 + r8924828;
double r8924830 = 4.0;
double r8924831 = r8924829 * r8924830;
double r8924832 = r8924822 + r8924831;
double r8924833 = r8924832 - r8924826;
return r8924833;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
Final simplification0.2
herbie shell --seed 2019171
(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))