\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\sqrt{\mathsf{fma}\left(a \cdot a + b \cdot b, a \cdot a + b \cdot b, \left(\left(a \cdot a\right) \cdot \left(1 - a\right) + \left(a + 3\right) \cdot \left(b \cdot b\right)\right) \cdot 4\right)} \cdot \sqrt{\mathsf{fma}\left(a \cdot a + b \cdot b, a \cdot a + b \cdot b, \left(\left(a \cdot a\right) \cdot \left(1 - a\right) + \left(a + 3\right) \cdot \left(b \cdot b\right)\right) \cdot 4\right)} - 1double f(double a, double b) {
double r4089978 = a;
double r4089979 = r4089978 * r4089978;
double r4089980 = b;
double r4089981 = r4089980 * r4089980;
double r4089982 = r4089979 + r4089981;
double r4089983 = 2.0;
double r4089984 = pow(r4089982, r4089983);
double r4089985 = 4.0;
double r4089986 = 1.0;
double r4089987 = r4089986 - r4089978;
double r4089988 = r4089979 * r4089987;
double r4089989 = 3.0;
double r4089990 = r4089989 + r4089978;
double r4089991 = r4089981 * r4089990;
double r4089992 = r4089988 + r4089991;
double r4089993 = r4089985 * r4089992;
double r4089994 = r4089984 + r4089993;
double r4089995 = r4089994 - r4089986;
return r4089995;
}
double f(double a, double b) {
double r4089996 = a;
double r4089997 = r4089996 * r4089996;
double r4089998 = b;
double r4089999 = r4089998 * r4089998;
double r4090000 = r4089997 + r4089999;
double r4090001 = 1.0;
double r4090002 = r4090001 - r4089996;
double r4090003 = r4089997 * r4090002;
double r4090004 = 3.0;
double r4090005 = r4089996 + r4090004;
double r4090006 = r4090005 * r4089999;
double r4090007 = r4090003 + r4090006;
double r4090008 = 4.0;
double r4090009 = r4090007 * r4090008;
double r4090010 = fma(r4090000, r4090000, r4090009);
double r4090011 = sqrt(r4090010);
double r4090012 = r4090011 * r4090011;
double r4090013 = r4090012 - r4090001;
return r4090013;
}



Bits error versus a



Bits error versus b
Initial program 0.2
rmApplied unpow20.2
Applied fma-def0.2
rmApplied add-sqr-sqrt0.2
Final simplification0.2
herbie shell --seed 2019155 +o rules:numerics
(FPCore (a b)
:name "Bouland and Aaronson, Equation (24)"
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (- 1 a)) (* (* b b) (+ 3 a))))) 1))