\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 r225826 = a;
double r225827 = r225826 * r225826;
double r225828 = b;
double r225829 = r225828 * r225828;
double r225830 = r225827 + r225829;
double r225831 = 2.0;
double r225832 = pow(r225830, r225831);
double r225833 = 4.0;
double r225834 = 1.0;
double r225835 = r225834 - r225826;
double r225836 = r225827 * r225835;
double r225837 = 3.0;
double r225838 = r225837 + r225826;
double r225839 = r225829 * r225838;
double r225840 = r225836 + r225839;
double r225841 = r225833 * r225840;
double r225842 = r225832 + r225841;
double r225843 = r225842 - r225834;
return r225843;
}
double f(double a, double b) {
double r225844 = a;
double r225845 = r225844 * r225844;
double r225846 = b;
double r225847 = r225846 * r225846;
double r225848 = r225845 + r225847;
double r225849 = 2.0;
double r225850 = pow(r225848, r225849);
double r225851 = 4.0;
double r225852 = 1.0;
double r225853 = r225852 - r225844;
double r225854 = r225845 * r225853;
double r225855 = 3.0;
double r225856 = r225855 + r225844;
double r225857 = r225847 * r225856;
double r225858 = r225854 + r225857;
double r225859 = r225851 * r225858;
double r225860 = r225850 + r225859;
double r225861 = r225860 - r225852;
return r225861;
}



Bits error versus a



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