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



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))