\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} + 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) - 1double f(double a, double b) {
double r195213 = a;
double r195214 = r195213 * r195213;
double r195215 = b;
double r195216 = r195215 * r195215;
double r195217 = r195214 + r195216;
double r195218 = 2.0;
double r195219 = pow(r195217, r195218);
double r195220 = 4.0;
double r195221 = 1.0;
double r195222 = r195221 + r195213;
double r195223 = r195214 * r195222;
double r195224 = 3.0;
double r195225 = r195224 * r195213;
double r195226 = r195221 - r195225;
double r195227 = r195216 * r195226;
double r195228 = r195223 + r195227;
double r195229 = r195220 * r195228;
double r195230 = r195219 + r195229;
double r195231 = r195230 - r195221;
return r195231;
}
double f(double a, double b) {
double r195232 = a;
double r195233 = r195232 * r195232;
double r195234 = b;
double r195235 = r195234 * r195234;
double r195236 = r195233 + r195235;
double r195237 = 2.0;
double r195238 = pow(r195236, r195237);
double r195239 = 4.0;
double r195240 = 1.0;
double r195241 = r195240 + r195232;
double r195242 = r195233 * r195241;
double r195243 = 3.0;
double r195244 = r195243 * r195232;
double r195245 = r195240 - r195244;
double r195246 = r195235 * r195245;
double r195247 = r195242 + r195246;
double r195248 = r195239 * r195247;
double r195249 = r195238 + r195248;
double r195250 = r195249 - r195240;
return r195250;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
Final simplification0.2
herbie shell --seed 2019344
(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))