\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(12 \cdot \left(b \cdot b\right) + 4 \cdot \left(\left(\left(1 - a\right) \cdot a + b \cdot b\right) \cdot a\right)\right) - \left(1 - \sqrt{a \cdot a + b \cdot b} \cdot {\left(\sqrt{a \cdot a + b \cdot b}\right)}^{3}\right)double f(double a, double b) {
double r3820005 = a;
double r3820006 = r3820005 * r3820005;
double r3820007 = b;
double r3820008 = r3820007 * r3820007;
double r3820009 = r3820006 + r3820008;
double r3820010 = 2.0;
double r3820011 = pow(r3820009, r3820010);
double r3820012 = 4.0;
double r3820013 = 1.0;
double r3820014 = r3820013 - r3820005;
double r3820015 = r3820006 * r3820014;
double r3820016 = 3.0;
double r3820017 = r3820016 + r3820005;
double r3820018 = r3820008 * r3820017;
double r3820019 = r3820015 + r3820018;
double r3820020 = r3820012 * r3820019;
double r3820021 = r3820011 + r3820020;
double r3820022 = r3820021 - r3820013;
return r3820022;
}
double f(double a, double b) {
double r3820023 = 12.0;
double r3820024 = b;
double r3820025 = r3820024 * r3820024;
double r3820026 = r3820023 * r3820025;
double r3820027 = 4.0;
double r3820028 = 1.0;
double r3820029 = a;
double r3820030 = r3820028 - r3820029;
double r3820031 = r3820030 * r3820029;
double r3820032 = r3820031 + r3820025;
double r3820033 = r3820032 * r3820029;
double r3820034 = r3820027 * r3820033;
double r3820035 = r3820026 + r3820034;
double r3820036 = r3820029 * r3820029;
double r3820037 = r3820036 + r3820025;
double r3820038 = sqrt(r3820037);
double r3820039 = 3.0;
double r3820040 = pow(r3820038, r3820039);
double r3820041 = r3820038 * r3820040;
double r3820042 = r3820028 - r3820041;
double r3820043 = r3820035 - r3820042;
return r3820043;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
Simplified0.2
rmApplied add-sqr-sqrt0.2
Applied associate-*r*0.1
rmApplied add-sqr-sqrt0.1
Applied pow30.1
Final simplification0.1
herbie shell --seed 2019154
(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))