x + \frac{\left(y - z\right) \cdot t}{a - z}\left(\frac{\sqrt[3]{y - z}}{\sqrt[3]{a - z}} \cdot \left(\sqrt[3]{\frac{\sqrt[3]{y - z}}{\frac{\sqrt[3]{a - z}}{t}}} \cdot \left(\sqrt[3]{\frac{\sqrt[3]{y - z}}{\frac{\sqrt[3]{a - z}}{t}}} \cdot \sqrt[3]{\frac{\sqrt[3]{y - z}}{\frac{\sqrt[3]{a - z}}{t}}}\right)\right)\right) \cdot \frac{\sqrt[3]{y - z}}{\sqrt[3]{a - z}} + xdouble f(double x, double y, double z, double t, double a) {
double r396314 = x;
double r396315 = y;
double r396316 = z;
double r396317 = r396315 - r396316;
double r396318 = t;
double r396319 = r396317 * r396318;
double r396320 = a;
double r396321 = r396320 - r396316;
double r396322 = r396319 / r396321;
double r396323 = r396314 + r396322;
return r396323;
}
double f(double x, double y, double z, double t, double a) {
double r396324 = y;
double r396325 = z;
double r396326 = r396324 - r396325;
double r396327 = cbrt(r396326);
double r396328 = a;
double r396329 = r396328 - r396325;
double r396330 = cbrt(r396329);
double r396331 = r396327 / r396330;
double r396332 = t;
double r396333 = r396330 / r396332;
double r396334 = r396327 / r396333;
double r396335 = cbrt(r396334);
double r396336 = r396335 * r396335;
double r396337 = r396335 * r396336;
double r396338 = r396331 * r396337;
double r396339 = r396338 * r396331;
double r396340 = x;
double r396341 = r396339 + r396340;
return r396341;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 11.1 |
|---|---|
| Target | 0.5 |
| Herbie | 1.2 |
Initial program 11.1
Simplified2.8
rmApplied div-inv2.9
rmApplied add-cube-cbrt3.3
Applied associate-*l*3.3
Simplified4.8
rmApplied add-cube-cbrt4.8
Applied times-frac1.9
Applied associate-*r*1.8
Simplified3.5
rmApplied add-cube-cbrt3.7
Simplified4.2
Simplified1.2
Final simplification1.2
herbie shell --seed 2019194
(FPCore (x y z t a)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisTick from plot-0.2.3.4, A"
:herbie-target
(if (< t -1.0682974490174067e-39) (+ x (* (/ (- y z) (- a z)) t)) (if (< t 3.9110949887586375e-141) (+ x (/ (* (- y z) t) (- a z))) (+ x (* (/ (- y z) (- a z)) t))))
(+ x (/ (* (- y z) t) (- a z))))