double f(double a, double b) {
double r34885354 = a;
double r34885355 = r34885354 * r34885354;
double r34885356 = b;
double r34885357 = r34885356 * r34885356;
double r34885358 = r34885355 + r34885357;
double r34885359 = 2.0;
double r34885360 = pow(r34885358, r34885359);
double r34885361 = 4.0;
double r34885362 = 1.0;
double r34885363 = r34885362 + r34885354;
double r34885364 = r34885355 * r34885363;
double r34885365 = 3.0;
double r34885366 = r34885365 * r34885354;
double r34885367 = r34885362 - r34885366;
double r34885368 = r34885357 * r34885367;
double r34885369 = r34885364 + r34885368;
double r34885370 = r34885361 * r34885369;
double r34885371 = r34885360 + r34885370;
double r34885372 = r34885371 - r34885362;
return r34885372;
}
double f(double a, double b) {
double r34885373 = 4.0;
double r34885374 = a;
double r34885375 = r34885374 * r34885374;
double r34885376 = 1.0;
double r34885377 = r34885376 + r34885374;
double r34885378 = r34885375 * r34885377;
double r34885379 = b;
double r34885380 = r34885379 * r34885379;
double r34885381 = 3.0;
double r34885382 = r34885374 * r34885381;
double r34885383 = r34885376 - r34885382;
double r34885384 = r34885380 * r34885383;
double r34885385 = r34885378 + r34885384;
double r34885386 = r34885373 * r34885385;
double r34885387 = 2.0;
double r34885388 = r34885375 * r34885387;
double r34885389 = fma(r34885379, r34885379, r34885388);
double r34885390 = r34885389 * r34885379;
double r34885391 = pow(r34885374, r34885373);
double r34885392 = fma(r34885379, r34885390, r34885391);
double r34885393 = r34885386 + r34885392;
double r34885394 = r34885393 - r34885376;
return r34885394;
}
\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 - a \cdot 3\right)\right) + (b \cdot \left((b \cdot b + \left(\left(a \cdot a\right) \cdot 2\right))_* \cdot b\right) + \left({a}^{4}\right))_*\right) - 1


Bits error versus a



Bits error versus b
Initial program 0.2
Taylor expanded around 0 0.0
Simplified0.2
rmApplied pow10.2
Applied pow10.2
Applied pow-prod-up0.2
Applied pow10.2
Applied pow10.2
Applied pow-prod-up0.2
Applied pow-prod-up0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019102 +o rules:numerics
(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))