\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} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 - a\right) + \left(b \cdot b\right) \cdot \left(3 + a\right)\right)} \cdot \left(\sqrt{\sqrt{{\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)}} \cdot \sqrt{\sqrt{{\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 r183004 = a;
double r183005 = r183004 * r183004;
double r183006 = b;
double r183007 = r183006 * r183006;
double r183008 = r183005 + r183007;
double r183009 = 2.0;
double r183010 = pow(r183008, r183009);
double r183011 = 4.0;
double r183012 = 1.0;
double r183013 = r183012 - r183004;
double r183014 = r183005 * r183013;
double r183015 = 3.0;
double r183016 = r183015 + r183004;
double r183017 = r183007 * r183016;
double r183018 = r183014 + r183017;
double r183019 = r183011 * r183018;
double r183020 = r183010 + r183019;
double r183021 = r183020 - r183012;
return r183021;
}
double f(double a, double b) {
double r183022 = a;
double r183023 = r183022 * r183022;
double r183024 = b;
double r183025 = r183024 * r183024;
double r183026 = r183023 + r183025;
double r183027 = 2.0;
double r183028 = pow(r183026, r183027);
double r183029 = 4.0;
double r183030 = 1.0;
double r183031 = r183030 - r183022;
double r183032 = r183023 * r183031;
double r183033 = 3.0;
double r183034 = r183033 + r183022;
double r183035 = r183025 * r183034;
double r183036 = r183032 + r183035;
double r183037 = r183029 * r183036;
double r183038 = r183028 + r183037;
double r183039 = sqrt(r183038);
double r183040 = sqrt(r183039);
double r183041 = r183040 * r183040;
double r183042 = r183039 * r183041;
double r183043 = r183042 - r183030;
return r183043;
}



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 2020045
(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))