\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 r9416353 = a;
double r9416354 = r9416353 * r9416353;
double r9416355 = b;
double r9416356 = r9416355 * r9416355;
double r9416357 = r9416354 + r9416356;
double r9416358 = 2.0;
double r9416359 = pow(r9416357, r9416358);
double r9416360 = 4.0;
double r9416361 = 1.0;
double r9416362 = r9416361 + r9416353;
double r9416363 = r9416354 * r9416362;
double r9416364 = 3.0;
double r9416365 = r9416364 * r9416353;
double r9416366 = r9416361 - r9416365;
double r9416367 = r9416356 * r9416366;
double r9416368 = r9416363 + r9416367;
double r9416369 = r9416360 * r9416368;
double r9416370 = r9416359 + r9416369;
double r9416371 = r9416370 - r9416361;
return r9416371;
}
double f(double a, double b) {
double r9416372 = a;
double r9416373 = r9416372 * r9416372;
double r9416374 = 1.0;
double r9416375 = r9416372 + r9416374;
double r9416376 = r9416373 * r9416375;
double r9416377 = b;
double r9416378 = r9416377 * r9416377;
double r9416379 = 3.0;
double r9416380 = r9416379 * r9416372;
double r9416381 = r9416374 - r9416380;
double r9416382 = r9416378 * r9416381;
double r9416383 = r9416376 + r9416382;
double r9416384 = 4.0;
double r9416385 = r9416383 * r9416384;
double r9416386 = cbrt(r9416385);
double r9416387 = r9416386 * r9416386;
double r9416388 = r9416387 * r9416386;
double r9416389 = r9416373 + r9416378;
double r9416390 = 2.0;
double r9416391 = pow(r9416389, r9416390);
double r9416392 = r9416388 + r9416391;
double r9416393 = r9416392 - r9416374;
return r9416393;
}



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