\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(4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 - a\right) + \left(b \cdot b\right) \cdot \left(3 + a\right)\right) + {\left(a \cdot a + b \cdot b\right)}^{2}\right) - 1double f(double a, double b) {
double r209791 = a;
double r209792 = r209791 * r209791;
double r209793 = b;
double r209794 = r209793 * r209793;
double r209795 = r209792 + r209794;
double r209796 = 2.0;
double r209797 = pow(r209795, r209796);
double r209798 = 4.0;
double r209799 = 1.0;
double r209800 = r209799 - r209791;
double r209801 = r209792 * r209800;
double r209802 = 3.0;
double r209803 = r209802 + r209791;
double r209804 = r209794 * r209803;
double r209805 = r209801 + r209804;
double r209806 = r209798 * r209805;
double r209807 = r209797 + r209806;
double r209808 = r209807 - r209799;
return r209808;
}
double f(double a, double b) {
double r209809 = 4.0;
double r209810 = a;
double r209811 = r209810 * r209810;
double r209812 = 1.0;
double r209813 = r209812 - r209810;
double r209814 = r209811 * r209813;
double r209815 = b;
double r209816 = r209815 * r209815;
double r209817 = 3.0;
double r209818 = r209817 + r209810;
double r209819 = r209816 * r209818;
double r209820 = r209814 + r209819;
double r209821 = r209809 * r209820;
double r209822 = r209811 + r209816;
double r209823 = 2.0;
double r209824 = pow(r209822, r209823);
double r209825 = r209821 + r209824;
double r209826 = r209825 - r209812;
return r209826;
}



Bits error versus a



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