\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) + \frac{\left(b \cdot b\right) \cdot \left({3}^{3} + {a}^{3}\right)}{3 \cdot 3 + \left(a \cdot a - 3 \cdot a\right)}\right)\right) - 1double f(double a, double b) {
double r387910 = a;
double r387911 = r387910 * r387910;
double r387912 = b;
double r387913 = r387912 * r387912;
double r387914 = r387911 + r387913;
double r387915 = 2.0;
double r387916 = pow(r387914, r387915);
double r387917 = 4.0;
double r387918 = 1.0;
double r387919 = r387918 - r387910;
double r387920 = r387911 * r387919;
double r387921 = 3.0;
double r387922 = r387921 + r387910;
double r387923 = r387913 * r387922;
double r387924 = r387920 + r387923;
double r387925 = r387917 * r387924;
double r387926 = r387916 + r387925;
double r387927 = r387926 - r387918;
return r387927;
}
double f(double a, double b) {
double r387928 = a;
double r387929 = r387928 * r387928;
double r387930 = b;
double r387931 = r387930 * r387930;
double r387932 = r387929 + r387931;
double r387933 = 2.0;
double r387934 = pow(r387932, r387933);
double r387935 = 4.0;
double r387936 = 1.0;
double r387937 = r387936 - r387928;
double r387938 = r387929 * r387937;
double r387939 = 3.0;
double r387940 = 3.0;
double r387941 = pow(r387939, r387940);
double r387942 = pow(r387928, r387940);
double r387943 = r387941 + r387942;
double r387944 = r387931 * r387943;
double r387945 = r387939 * r387939;
double r387946 = r387939 * r387928;
double r387947 = r387929 - r387946;
double r387948 = r387945 + r387947;
double r387949 = r387944 / r387948;
double r387950 = r387938 + r387949;
double r387951 = r387935 * r387950;
double r387952 = r387934 + r387951;
double r387953 = r387952 - r387936;
return r387953;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
rmApplied flip3-+0.2
Applied associate-*r/0.4
Final simplification0.4
herbie shell --seed 2019350
(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))