\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(3 + a\right)\right)\right) - 1\left((b \cdot \left((b \cdot b + \left(\left(a \cdot a\right) \cdot 2\right))_* \cdot b\right) + \left({a}^{4}\right))_* + \left(\left(b \cdot b\right) \cdot \left(3 + a\right) + \left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4\right) - 1double f(double a, double b) {
double r41739329 = a;
double r41739330 = r41739329 * r41739329;
double r41739331 = b;
double r41739332 = r41739331 * r41739331;
double r41739333 = r41739330 + r41739332;
double r41739334 = 2.0;
double r41739335 = pow(r41739333, r41739334);
double r41739336 = 4.0;
double r41739337 = 1.0;
double r41739338 = r41739337 - r41739329;
double r41739339 = r41739330 * r41739338;
double r41739340 = 3.0;
double r41739341 = r41739340 + r41739329;
double r41739342 = r41739332 * r41739341;
double r41739343 = r41739339 + r41739342;
double r41739344 = r41739336 * r41739343;
double r41739345 = r41739335 + r41739344;
double r41739346 = r41739345 - r41739337;
return r41739346;
}
double f(double a, double b) {
double r41739347 = b;
double r41739348 = a;
double r41739349 = r41739348 * r41739348;
double r41739350 = 2.0;
double r41739351 = r41739349 * r41739350;
double r41739352 = fma(r41739347, r41739347, r41739351);
double r41739353 = r41739352 * r41739347;
double r41739354 = 4.0;
double r41739355 = pow(r41739348, r41739354);
double r41739356 = fma(r41739347, r41739353, r41739355);
double r41739357 = r41739347 * r41739347;
double r41739358 = 3.0;
double r41739359 = r41739358 + r41739348;
double r41739360 = r41739357 * r41739359;
double r41739361 = 1.0;
double r41739362 = r41739361 - r41739348;
double r41739363 = r41739349 * r41739362;
double r41739364 = r41739360 + r41739363;
double r41739365 = r41739364 * r41739354;
double r41739366 = r41739356 + r41739365;
double r41739367 = r41739366 - r41739361;
return r41739367;
}



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 2019112 +o rules:numerics
(FPCore (a b)
:name "Bouland and Aaronson, Equation (24)"
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (- 1 a)) (* (* b b) (+ 3 a))))) 1))