x \cdot \left(y + z\right) + z \cdot 5
\left(x \cdot y + x \cdot z\right) + z \cdot 5
double f(double x, double y, double z) {
double r510696 = x;
double r510697 = y;
double r510698 = z;
double r510699 = r510697 + r510698;
double r510700 = r510696 * r510699;
double r510701 = 5.0;
double r510702 = r510698 * r510701;
double r510703 = r510700 + r510702;
return r510703;
}
double f(double x, double y, double z) {
double r510704 = x;
double r510705 = y;
double r510706 = r510704 * r510705;
double r510707 = z;
double r510708 = r510704 * r510707;
double r510709 = r510706 + r510708;
double r510710 = 5.0;
double r510711 = r510707 * r510710;
double r510712 = r510709 + r510711;
return r510712;
}




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
Final simplification0.1
herbie shell --seed 2019356
(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)))