\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(1 - 3 \cdot a\right)\right)\right) - 1\left(4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) + {\left(a \cdot a + b \cdot b\right)}^{2}\right) - 1double f(double a, double b) {
double r194018 = a;
double r194019 = r194018 * r194018;
double r194020 = b;
double r194021 = r194020 * r194020;
double r194022 = r194019 + r194021;
double r194023 = 2.0;
double r194024 = pow(r194022, r194023);
double r194025 = 4.0;
double r194026 = 1.0;
double r194027 = r194026 + r194018;
double r194028 = r194019 * r194027;
double r194029 = 3.0;
double r194030 = r194029 * r194018;
double r194031 = r194026 - r194030;
double r194032 = r194021 * r194031;
double r194033 = r194028 + r194032;
double r194034 = r194025 * r194033;
double r194035 = r194024 + r194034;
double r194036 = r194035 - r194026;
return r194036;
}
double f(double a, double b) {
double r194037 = 4.0;
double r194038 = a;
double r194039 = r194038 * r194038;
double r194040 = 1.0;
double r194041 = r194040 + r194038;
double r194042 = r194039 * r194041;
double r194043 = b;
double r194044 = r194043 * r194043;
double r194045 = 3.0;
double r194046 = r194045 * r194038;
double r194047 = r194040 - r194046;
double r194048 = r194044 * r194047;
double r194049 = r194042 + r194048;
double r194050 = r194037 * r194049;
double r194051 = r194039 + r194044;
double r194052 = 2.0;
double r194053 = pow(r194051, r194052);
double r194054 = r194050 + r194053;
double r194055 = r194054 - r194040;
return r194055;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
rmApplied +-commutative0.2
Final simplification0.2
herbie shell --seed 2019304
(FPCore (a b)
:name "Bouland and Aaronson, Equation (25)"
:precision binary64
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (+ 1 a)) (* (* b b) (- 1 (* 3 a)))))) 1))