\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({\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4\right) - 1double f(double a, double b) {
double r47198162 = a;
double r47198163 = r47198162 * r47198162;
double r47198164 = b;
double r47198165 = r47198164 * r47198164;
double r47198166 = r47198163 + r47198165;
double r47198167 = 2.0;
double r47198168 = pow(r47198166, r47198167);
double r47198169 = 4.0;
double r47198170 = 1.0;
double r47198171 = r47198170 + r47198162;
double r47198172 = r47198163 * r47198171;
double r47198173 = 3.0;
double r47198174 = r47198173 * r47198162;
double r47198175 = r47198170 - r47198174;
double r47198176 = r47198165 * r47198175;
double r47198177 = r47198172 + r47198176;
double r47198178 = r47198169 * r47198177;
double r47198179 = r47198168 + r47198178;
double r47198180 = r47198179 - r47198170;
return r47198180;
}
double f(double a, double b) {
double r47198181 = a;
double r47198182 = r47198181 * r47198181;
double r47198183 = b;
double r47198184 = r47198183 * r47198183;
double r47198185 = r47198182 + r47198184;
double r47198186 = 2.0;
double r47198187 = pow(r47198185, r47198186);
double r47198188 = 1.0;
double r47198189 = r47198181 + r47198188;
double r47198190 = r47198182 * r47198189;
double r47198191 = 3.0;
double r47198192 = r47198191 * r47198181;
double r47198193 = r47198188 - r47198192;
double r47198194 = r47198184 * r47198193;
double r47198195 = r47198190 + r47198194;
double r47198196 = 4.0;
double r47198197 = r47198195 * r47198196;
double r47198198 = r47198187 + r47198197;
double r47198199 = r47198198 - r47198188;
return r47198199;
}



Bits error versus a



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