\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{{\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a + 3\right) \cdot \left(b \cdot b\right) + \left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4} \cdot \left(\sqrt{\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a + 3\right) \cdot \left(b \cdot b\right) + \left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4}} \cdot \sqrt{\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a + 3\right) \cdot \left(b \cdot b\right) + \left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4}}\right) - 1double f(double a, double b) {
double r8834073 = a;
double r8834074 = r8834073 * r8834073;
double r8834075 = b;
double r8834076 = r8834075 * r8834075;
double r8834077 = r8834074 + r8834076;
double r8834078 = 2.0;
double r8834079 = pow(r8834077, r8834078);
double r8834080 = 4.0;
double r8834081 = 1.0;
double r8834082 = r8834081 - r8834073;
double r8834083 = r8834074 * r8834082;
double r8834084 = 3.0;
double r8834085 = r8834084 + r8834073;
double r8834086 = r8834076 * r8834085;
double r8834087 = r8834083 + r8834086;
double r8834088 = r8834080 * r8834087;
double r8834089 = r8834079 + r8834088;
double r8834090 = r8834089 - r8834081;
return r8834090;
}
double f(double a, double b) {
double r8834091 = a;
double r8834092 = r8834091 * r8834091;
double r8834093 = b;
double r8834094 = r8834093 * r8834093;
double r8834095 = r8834092 + r8834094;
double r8834096 = 2.0;
double r8834097 = pow(r8834095, r8834096);
double r8834098 = 3.0;
double r8834099 = r8834091 + r8834098;
double r8834100 = r8834099 * r8834094;
double r8834101 = 1.0;
double r8834102 = r8834101 - r8834091;
double r8834103 = r8834092 * r8834102;
double r8834104 = r8834100 + r8834103;
double r8834105 = 4.0;
double r8834106 = r8834104 * r8834105;
double r8834107 = r8834097 + r8834106;
double r8834108 = sqrt(r8834107);
double r8834109 = sqrt(r8834108);
double r8834110 = r8834109 * r8834109;
double r8834111 = r8834108 * r8834110;
double r8834112 = r8834111 - r8834101;
return r8834112;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
rmApplied add-sqr-sqrt0.2
rmApplied add-sqr-sqrt0.2
Applied sqrt-prod0.2
Final simplification0.2
herbie shell --seed 2019164 +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))