x \cdot \left(y + z\right) + z \cdot 5
x \cdot y + z \cdot \left(x + 5\right)
double f(double x, double y, double z) {
double r845556 = x;
double r845557 = y;
double r845558 = z;
double r845559 = r845557 + r845558;
double r845560 = r845556 * r845559;
double r845561 = 5.0;
double r845562 = r845558 * r845561;
double r845563 = r845560 + r845562;
return r845563;
}
double f(double x, double y, double z) {
double r845564 = x;
double r845565 = y;
double r845566 = r845564 * r845565;
double r845567 = z;
double r845568 = 5.0;
double r845569 = r845564 + r845568;
double r845570 = r845567 * r845569;
double r845571 = r845566 + r845570;
return r845571;
}




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
rmApplied distribute-lft-in0.1
Applied associate-+l+0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2020047
(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)))