x + \frac{y \cdot \left(z - t\right)}{z - a}x + \frac{\sqrt[3]{z - t} \cdot \sqrt[3]{z - t}}{\sqrt[3]{z - a} \cdot \sqrt[3]{z - a}} \cdot \frac{y}{\frac{\sqrt[3]{z - a}}{\sqrt[3]{z - t}}}double f(double x, double y, double z, double t, double a) {
double r680440 = x;
double r680441 = y;
double r680442 = z;
double r680443 = t;
double r680444 = r680442 - r680443;
double r680445 = r680441 * r680444;
double r680446 = a;
double r680447 = r680442 - r680446;
double r680448 = r680445 / r680447;
double r680449 = r680440 + r680448;
return r680449;
}
double f(double x, double y, double z, double t, double a) {
double r680450 = x;
double r680451 = z;
double r680452 = t;
double r680453 = r680451 - r680452;
double r680454 = cbrt(r680453);
double r680455 = r680454 * r680454;
double r680456 = a;
double r680457 = r680451 - r680456;
double r680458 = cbrt(r680457);
double r680459 = r680458 * r680458;
double r680460 = r680455 / r680459;
double r680461 = y;
double r680462 = r680458 / r680454;
double r680463 = r680461 / r680462;
double r680464 = r680460 * r680463;
double r680465 = r680450 + r680464;
return r680465;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 11.3 |
|---|---|
| Target | 1.4 |
| Herbie | 0.6 |
Initial program 11.3
rmApplied associate-/l*1.4
rmApplied add-cube-cbrt1.9
Applied add-cube-cbrt1.8
Applied times-frac1.8
Applied *-un-lft-identity1.8
Applied times-frac0.6
Simplified0.6
Final simplification0.6
herbie shell --seed 2020060
(FPCore (x y z t a)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisTicks from plot-0.2.3.4, A"
:precision binary64
:herbie-target
(+ x (/ y (/ (- z a) (- z t))))
(+ x (/ (* y (- z t)) (- z a))))