\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({\left(\sqrt[3]{{\left(\mathsf{fma}\left(a, a, b \cdot b\right)\right)}^{\left(\frac{2}{2}\right)}}\right)}^{4} \cdot \left(\sqrt[3]{{\left(\mathsf{fma}\left(a, a, b \cdot b\right)\right)}^{\left(\frac{2}{2}\right)}} \cdot \sqrt[3]{{\left(\mathsf{fma}\left(a, a, b \cdot b\right)\right)}^{\left(\frac{2}{2}\right)}}\right) + 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) - 1double f(double a, double b) {
double r284408 = a;
double r284409 = r284408 * r284408;
double r284410 = b;
double r284411 = r284410 * r284410;
double r284412 = r284409 + r284411;
double r284413 = 2.0;
double r284414 = pow(r284412, r284413);
double r284415 = 4.0;
double r284416 = 1.0;
double r284417 = r284416 - r284408;
double r284418 = r284409 * r284417;
double r284419 = 3.0;
double r284420 = r284419 + r284408;
double r284421 = r284411 * r284420;
double r284422 = r284418 + r284421;
double r284423 = r284415 * r284422;
double r284424 = r284414 + r284423;
double r284425 = r284424 - r284416;
return r284425;
}
double f(double a, double b) {
double r284426 = a;
double r284427 = b;
double r284428 = r284427 * r284427;
double r284429 = fma(r284426, r284426, r284428);
double r284430 = 2.0;
double r284431 = 2.0;
double r284432 = r284430 / r284431;
double r284433 = pow(r284429, r284432);
double r284434 = cbrt(r284433);
double r284435 = 4.0;
double r284436 = pow(r284434, r284435);
double r284437 = r284434 * r284434;
double r284438 = r284436 * r284437;
double r284439 = 4.0;
double r284440 = r284426 * r284426;
double r284441 = 1.0;
double r284442 = r284441 - r284426;
double r284443 = r284440 * r284442;
double r284444 = 3.0;
double r284445 = r284444 + r284426;
double r284446 = r284428 * r284445;
double r284447 = r284443 + r284446;
double r284448 = r284439 * r284447;
double r284449 = r284438 + r284448;
double r284450 = r284449 - r284441;
return r284450;
}



Bits error versus a



Bits error versus b
Initial program 0.2
rmApplied sqr-pow0.2
Simplified0.2
Simplified0.2
rmApplied add-cube-cbrt0.5
Applied add-cube-cbrt0.7
Applied swap-sqr0.7
Simplified0.7
Final simplification0.7
herbie shell --seed 2020060 +o rules:numerics
(FPCore (a b)
:name "Bouland and Aaronson, Equation (24)"
:precision binary64
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (- 1 a)) (* (* b b) (+ 3 a))))) 1))