x \cdot \left(y + z\right) + z \cdot 5.0
z \cdot 5.0 + \left(y + z\right) \cdot x
double f(double x, double y, double z) {
double r20645169 = x;
double r20645170 = y;
double r20645171 = z;
double r20645172 = r20645170 + r20645171;
double r20645173 = r20645169 * r20645172;
double r20645174 = 5.0;
double r20645175 = r20645171 * r20645174;
double r20645176 = r20645173 + r20645175;
return r20645176;
}
double f(double x, double y, double z) {
double r20645177 = z;
double r20645178 = 5.0;
double r20645179 = r20645177 * r20645178;
double r20645180 = y;
double r20645181 = r20645180 + r20645177;
double r20645182 = x;
double r20645183 = r20645181 * r20645182;
double r20645184 = r20645179 + r20645183;
return r20645184;
}




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 2019158
(FPCore (x y z)
:name "Graphics.Rendering.Plot.Render.Plot.Legend:renderLegendOutside from plot-0.2.3.4, C"
:herbie-target
(+ (* (+ x 5.0) z) (* x y))
(+ (* x (+ y z)) (* z 5.0)))