x + \frac{\left(y - z\right) \cdot t}{a - z}x + \left(\left(y - z\right) \cdot \frac{\sqrt[3]{t} \cdot \sqrt[3]{t}}{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}}\right) \cdot \frac{\sqrt[3]{t}}{\sqrt[3]{a - z}}double f(double x, double y, double z, double t, double a) {
double r455354 = x;
double r455355 = y;
double r455356 = z;
double r455357 = r455355 - r455356;
double r455358 = t;
double r455359 = r455357 * r455358;
double r455360 = a;
double r455361 = r455360 - r455356;
double r455362 = r455359 / r455361;
double r455363 = r455354 + r455362;
return r455363;
}
double f(double x, double y, double z, double t, double a) {
double r455364 = x;
double r455365 = y;
double r455366 = z;
double r455367 = r455365 - r455366;
double r455368 = t;
double r455369 = cbrt(r455368);
double r455370 = r455369 * r455369;
double r455371 = a;
double r455372 = r455371 - r455366;
double r455373 = cbrt(r455372);
double r455374 = r455373 * r455373;
double r455375 = r455370 / r455374;
double r455376 = r455367 * r455375;
double r455377 = r455369 / r455373;
double r455378 = r455376 * r455377;
double r455379 = r455364 + r455378;
return r455379;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 10.5 |
|---|---|
| Target | 0.7 |
| Herbie | 1.0 |
Initial program 10.5
rmApplied *-un-lft-identity10.5
Applied times-frac3.3
Simplified3.3
rmApplied add-cube-cbrt3.7
Applied add-cube-cbrt3.8
Applied times-frac3.8
Applied associate-*r*1.0
Final simplification1.0
herbie shell --seed 2019323
(FPCore (x y z t a)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisTick from plot-0.2.3.4, A"
:precision binary64
: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))))