\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(\sqrt[3]{\left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4} \cdot \sqrt[3]{\left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4}\right) \cdot \sqrt[3]{\left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4} + {\left(a \cdot a + b \cdot b\right)}^{2}\right) - 1double f(double a, double b) {
double r8571398 = a;
double r8571399 = r8571398 * r8571398;
double r8571400 = b;
double r8571401 = r8571400 * r8571400;
double r8571402 = r8571399 + r8571401;
double r8571403 = 2.0;
double r8571404 = pow(r8571402, r8571403);
double r8571405 = 4.0;
double r8571406 = 1.0;
double r8571407 = r8571406 + r8571398;
double r8571408 = r8571399 * r8571407;
double r8571409 = 3.0;
double r8571410 = r8571409 * r8571398;
double r8571411 = r8571406 - r8571410;
double r8571412 = r8571401 * r8571411;
double r8571413 = r8571408 + r8571412;
double r8571414 = r8571405 * r8571413;
double r8571415 = r8571404 + r8571414;
double r8571416 = r8571415 - r8571406;
return r8571416;
}
double f(double a, double b) {
double r8571417 = a;
double r8571418 = r8571417 * r8571417;
double r8571419 = 1.0;
double r8571420 = r8571417 + r8571419;
double r8571421 = r8571418 * r8571420;
double r8571422 = b;
double r8571423 = r8571422 * r8571422;
double r8571424 = 3.0;
double r8571425 = r8571424 * r8571417;
double r8571426 = r8571419 - r8571425;
double r8571427 = r8571423 * r8571426;
double r8571428 = r8571421 + r8571427;
double r8571429 = 4.0;
double r8571430 = r8571428 * r8571429;
double r8571431 = cbrt(r8571430);
double r8571432 = r8571431 * r8571431;
double r8571433 = r8571432 * r8571431;
double r8571434 = r8571418 + r8571423;
double r8571435 = 2.0;
double r8571436 = pow(r8571434, r8571435);
double r8571437 = r8571433 + r8571436;
double r8571438 = r8571437 - r8571419;
return r8571438;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
rmApplied add-cube-cbrt0.2
Final simplification0.2
herbie shell --seed 2019172 +o rules:numerics
(FPCore (a b)
:name "Bouland and Aaronson, Equation (25)"
(- (+ (pow (+ (* a a) (* b b)) 2.0) (* 4.0 (+ (* (* a a) (+ 1.0 a)) (* (* b b) (- 1.0 (* 3.0 a)))))) 1.0))