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 r628313 = x;
double r628314 = y;
double r628315 = z;
double r628316 = t;
double r628317 = r628315 - r628316;
double r628318 = r628314 * r628317;
double r628319 = a;
double r628320 = r628315 - r628319;
double r628321 = r628318 / r628320;
double r628322 = r628313 + r628321;
return r628322;
}
double f(double x, double y, double z, double t, double a) {
double r628323 = x;
double r628324 = z;
double r628325 = t;
double r628326 = r628324 - r628325;
double r628327 = cbrt(r628326);
double r628328 = r628327 * r628327;
double r628329 = a;
double r628330 = r628324 - r628329;
double r628331 = cbrt(r628330);
double r628332 = r628331 * r628331;
double r628333 = r628328 / r628332;
double r628334 = y;
double r628335 = r628331 / r628327;
double r628336 = r628334 / r628335;
double r628337 = r628333 * r628336;
double r628338 = r628323 + r628337;
return r628338;
}




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