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 r40355122 = x;
double r40355123 = y;
double r40355124 = z;
double r40355125 = t;
double r40355126 = r40355124 - r40355125;
double r40355127 = r40355123 * r40355126;
double r40355128 = a;
double r40355129 = r40355124 - r40355128;
double r40355130 = r40355127 / r40355129;
double r40355131 = r40355122 + r40355130;
return r40355131;
}
double f(double x, double y, double z, double t, double a) {
double r40355132 = x;
double r40355133 = z;
double r40355134 = t;
double r40355135 = r40355133 - r40355134;
double r40355136 = cbrt(r40355135);
double r40355137 = r40355136 * r40355136;
double r40355138 = a;
double r40355139 = r40355133 - r40355138;
double r40355140 = cbrt(r40355139);
double r40355141 = r40355140 * r40355140;
double r40355142 = r40355137 / r40355141;
double r40355143 = y;
double r40355144 = r40355140 / r40355136;
double r40355145 = r40355143 / r40355144;
double r40355146 = r40355142 * r40355145;
double r40355147 = r40355132 + r40355146;
return r40355147;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




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