\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(\left(a \cdot a\right) \cdot \left(\sqrt[3]{1 + a} \cdot \sqrt[3]{1 + a}\right)\right) \cdot \sqrt[3]{1 + a} + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1double f(double a, double b) {
double r285388 = a;
double r285389 = r285388 * r285388;
double r285390 = b;
double r285391 = r285390 * r285390;
double r285392 = r285389 + r285391;
double r285393 = 2.0;
double r285394 = pow(r285392, r285393);
double r285395 = 4.0;
double r285396 = 1.0;
double r285397 = r285396 + r285388;
double r285398 = r285389 * r285397;
double r285399 = 3.0;
double r285400 = r285399 * r285388;
double r285401 = r285396 - r285400;
double r285402 = r285391 * r285401;
double r285403 = r285398 + r285402;
double r285404 = r285395 * r285403;
double r285405 = r285394 + r285404;
double r285406 = r285405 - r285396;
return r285406;
}
double f(double a, double b) {
double r285407 = a;
double r285408 = r285407 * r285407;
double r285409 = b;
double r285410 = r285409 * r285409;
double r285411 = r285408 + r285410;
double r285412 = 2.0;
double r285413 = pow(r285411, r285412);
double r285414 = 4.0;
double r285415 = 1.0;
double r285416 = r285415 + r285407;
double r285417 = cbrt(r285416);
double r285418 = r285417 * r285417;
double r285419 = r285408 * r285418;
double r285420 = r285419 * r285417;
double r285421 = 3.0;
double r285422 = r285421 * r285407;
double r285423 = r285415 - r285422;
double r285424 = r285410 * r285423;
double r285425 = r285420 + r285424;
double r285426 = r285414 * r285425;
double r285427 = r285413 + r285426;
double r285428 = r285427 - r285415;
return r285428;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
rmApplied add-cube-cbrt0.2
Applied associate-*r*0.2
Final simplification0.2
herbie shell --seed 2019356 +o rules:numerics
(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))