x + \frac{y \cdot \left(z - t\right)}{z - a}x + \frac{y}{\frac{z - a}{z - t}}double f(double x, double y, double z, double t, double a) {
double r33502892 = x;
double r33502893 = y;
double r33502894 = z;
double r33502895 = t;
double r33502896 = r33502894 - r33502895;
double r33502897 = r33502893 * r33502896;
double r33502898 = a;
double r33502899 = r33502894 - r33502898;
double r33502900 = r33502897 / r33502899;
double r33502901 = r33502892 + r33502900;
return r33502901;
}
double f(double x, double y, double z, double t, double a) {
double r33502902 = x;
double r33502903 = y;
double r33502904 = z;
double r33502905 = a;
double r33502906 = r33502904 - r33502905;
double r33502907 = t;
double r33502908 = r33502904 - r33502907;
double r33502909 = r33502906 / r33502908;
double r33502910 = r33502903 / r33502909;
double r33502911 = r33502902 + r33502910;
return r33502911;
}




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 | 1.2 |
Initial program 11.2
rmApplied associate-/l*1.2
Final simplification1.2
herbie shell --seed 2019174 +o rules:numerics
(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))))