x + \frac{y \cdot \left(z - t\right)}{a}\left(\left(z - t\right) \cdot \frac{\sqrt[3]{y}}{\sqrt[3]{a}}\right) \cdot \frac{\sqrt[3]{y} \cdot \sqrt[3]{y}}{\sqrt[3]{a} \cdot \sqrt[3]{a}} + xdouble f(double x, double y, double z, double t, double a) {
double r16704436 = x;
double r16704437 = y;
double r16704438 = z;
double r16704439 = t;
double r16704440 = r16704438 - r16704439;
double r16704441 = r16704437 * r16704440;
double r16704442 = a;
double r16704443 = r16704441 / r16704442;
double r16704444 = r16704436 + r16704443;
return r16704444;
}
double f(double x, double y, double z, double t, double a) {
double r16704445 = z;
double r16704446 = t;
double r16704447 = r16704445 - r16704446;
double r16704448 = y;
double r16704449 = cbrt(r16704448);
double r16704450 = a;
double r16704451 = cbrt(r16704450);
double r16704452 = r16704449 / r16704451;
double r16704453 = r16704447 * r16704452;
double r16704454 = r16704449 * r16704449;
double r16704455 = r16704451 * r16704451;
double r16704456 = r16704454 / r16704455;
double r16704457 = r16704453 * r16704456;
double r16704458 = x;
double r16704459 = r16704457 + r16704458;
return r16704459;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 6.3 |
|---|---|
| Target | 0.6 |
| Herbie | 0.9 |
Initial program 6.3
Taylor expanded around 0 6.3
Simplified2.6
rmApplied add-cube-cbrt3.1
Applied add-cube-cbrt3.3
Applied times-frac3.3
Applied associate-*l*0.9
Final simplification0.9
herbie shell --seed 2019174
(FPCore (x y z t a)
:name "Optimisation.CirclePacking:place from circle-packing-0.1.0.4, E"
:herbie-target
(if (< y -1.0761266216389975e-10) (+ x (/ 1.0 (/ (/ a (- z t)) y))) (if (< y 2.894426862792089e-49) (+ x (/ (* y (- z t)) a)) (+ x (/ y (/ a (- z t))))))
(+ x (/ (* y (- z t)) a)))