x \cdot \left(y + z\right) + z \cdot 5
x \cdot \left(y + z\right) + z \cdot 5
double f(double x, double y, double z) {
double r622901 = x;
double r622902 = y;
double r622903 = z;
double r622904 = r622902 + r622903;
double r622905 = r622901 * r622904;
double r622906 = 5.0;
double r622907 = r622903 * r622906;
double r622908 = r622905 + r622907;
return r622908;
}
double f(double x, double y, double z) {
double r622909 = x;
double r622910 = y;
double r622911 = z;
double r622912 = r622910 + r622911;
double r622913 = r622909 * r622912;
double r622914 = 5.0;
double r622915 = r622911 * r622914;
double r622916 = r622913 + r622915;
return r622916;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 0.1 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 0.1
Final simplification0.1
herbie shell --seed 2020035
(FPCore (x y z)
:name "Graphics.Rendering.Plot.Render.Plot.Legend:renderLegendOutside from plot-0.2.3.4, C"
:precision binary64
:herbie-target
(+ (* (+ x 5) z) (* x y))
(+ (* x (+ y z)) (* z 5)))