\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(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(\left(a \cdot a\right) \cdot 1 + {a}^{3}\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1double f(double a, double b) {
double r253770 = a;
double r253771 = r253770 * r253770;
double r253772 = b;
double r253773 = r253772 * r253772;
double r253774 = r253771 + r253773;
double r253775 = 2.0;
double r253776 = pow(r253774, r253775);
double r253777 = 4.0;
double r253778 = 1.0;
double r253779 = r253778 + r253770;
double r253780 = r253771 * r253779;
double r253781 = 3.0;
double r253782 = r253781 * r253770;
double r253783 = r253778 - r253782;
double r253784 = r253773 * r253783;
double r253785 = r253780 + r253784;
double r253786 = r253777 * r253785;
double r253787 = r253776 + r253786;
double r253788 = r253787 - r253778;
return r253788;
}
double f(double a, double b) {
double r253789 = a;
double r253790 = r253789 * r253789;
double r253791 = b;
double r253792 = r253791 * r253791;
double r253793 = r253790 + r253792;
double r253794 = 2.0;
double r253795 = pow(r253793, r253794);
double r253796 = 4.0;
double r253797 = 1.0;
double r253798 = r253790 * r253797;
double r253799 = 3.0;
double r253800 = pow(r253789, r253799);
double r253801 = r253798 + r253800;
double r253802 = 3.0;
double r253803 = r253802 * r253789;
double r253804 = r253797 - r253803;
double r253805 = r253792 * r253804;
double r253806 = r253801 + r253805;
double r253807 = r253796 * r253806;
double r253808 = r253795 + r253807;
double r253809 = r253808 - r253797;
return r253809;
}



Bits error versus a



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