\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} + 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) - 1double f(double a, double b) {
double r294749 = a;
double r294750 = r294749 * r294749;
double r294751 = b;
double r294752 = r294751 * r294751;
double r294753 = r294750 + r294752;
double r294754 = 2.0;
double r294755 = pow(r294753, r294754);
double r294756 = 4.0;
double r294757 = 1.0;
double r294758 = r294757 - r294749;
double r294759 = r294750 * r294758;
double r294760 = 3.0;
double r294761 = r294760 + r294749;
double r294762 = r294752 * r294761;
double r294763 = r294759 + r294762;
double r294764 = r294756 * r294763;
double r294765 = r294755 + r294764;
double r294766 = r294765 - r294757;
return r294766;
}
double f(double a, double b) {
double r294767 = a;
double r294768 = r294767 * r294767;
double r294769 = b;
double r294770 = r294769 * r294769;
double r294771 = r294768 + r294770;
double r294772 = 2.0;
double r294773 = pow(r294771, r294772);
double r294774 = 4.0;
double r294775 = 1.0;
double r294776 = r294775 - r294767;
double r294777 = r294768 * r294776;
double r294778 = 3.0;
double r294779 = r294778 + r294767;
double r294780 = r294770 * r294779;
double r294781 = r294777 + r294780;
double r294782 = r294774 * r294781;
double r294783 = r294773 + r294782;
double r294784 = r294783 - r294775;
return r294784;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
Final simplification0.2
herbie shell --seed 2020046
(FPCore (a b)
:name "Bouland and Aaronson, Equation (24)"
:precision binary64
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (- 1 a)) (* (* b b) (+ 3 a))))) 1))