\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(1 - 3 \cdot a\right) \cdot \left(b \cdot b\right) + \left(a + 1\right) \cdot \left(a \cdot a\right)\right) + {\left(b \cdot b + a \cdot a\right)}^{2}\right) - 1double f(double a, double b) {
double r11316028 = a;
double r11316029 = r11316028 * r11316028;
double r11316030 = b;
double r11316031 = r11316030 * r11316030;
double r11316032 = r11316029 + r11316031;
double r11316033 = 2.0;
double r11316034 = pow(r11316032, r11316033);
double r11316035 = 4.0;
double r11316036 = 1.0;
double r11316037 = r11316036 + r11316028;
double r11316038 = r11316029 * r11316037;
double r11316039 = 3.0;
double r11316040 = r11316039 * r11316028;
double r11316041 = r11316036 - r11316040;
double r11316042 = r11316031 * r11316041;
double r11316043 = r11316038 + r11316042;
double r11316044 = r11316035 * r11316043;
double r11316045 = r11316034 + r11316044;
double r11316046 = r11316045 - r11316036;
return r11316046;
}
double f(double a, double b) {
double r11316047 = 4.0;
double r11316048 = 1.0;
double r11316049 = 3.0;
double r11316050 = a;
double r11316051 = r11316049 * r11316050;
double r11316052 = r11316048 - r11316051;
double r11316053 = b;
double r11316054 = r11316053 * r11316053;
double r11316055 = r11316052 * r11316054;
double r11316056 = r11316050 + r11316048;
double r11316057 = r11316050 * r11316050;
double r11316058 = r11316056 * r11316057;
double r11316059 = r11316055 + r11316058;
double r11316060 = r11316047 * r11316059;
double r11316061 = r11316054 + r11316057;
double r11316062 = 2.0;
double r11316063 = pow(r11316061, r11316062);
double r11316064 = r11316060 + r11316063;
double r11316065 = r11316064 - r11316048;
return r11316065;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
Final simplification0.2
herbie shell --seed 2019200
(FPCore (a b)
:name "Bouland and Aaronson, Equation (25)"
(- (+ (pow (+ (* a a) (* b b)) 2.0) (* 4.0 (+ (* (* a a) (+ 1.0 a)) (* (* b b) (- 1.0 (* 3.0 a)))))) 1.0))