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 r524011 = x;
double r524012 = y;
double r524013 = z;
double r524014 = r524012 - r524013;
double r524015 = t;
double r524016 = r524014 * r524015;
double r524017 = a;
double r524018 = r524017 - r524013;
double r524019 = r524016 / r524018;
double r524020 = r524011 + r524019;
return r524020;
}
double f(double x, double y, double z, double t, double a) {
double r524021 = y;
double r524022 = z;
double r524023 = r524021 - r524022;
double r524024 = cbrt(r524023);
double r524025 = a;
double r524026 = r524025 - r524022;
double r524027 = cbrt(r524026);
double r524028 = r524024 / r524027;
double r524029 = t;
double r524030 = r524027 / r524029;
double r524031 = r524024 / r524030;
double r524032 = cbrt(r524031);
double r524033 = r524032 * r524032;
double r524034 = r524032 * r524033;
double r524035 = r524028 * r524034;
double r524036 = r524035 * r524028;
double r524037 = x;
double r524038 = r524036 + r524037;
return r524038;
}




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