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 r426862 = x;
double r426863 = y;
double r426864 = z;
double r426865 = r426863 + r426864;
double r426866 = r426862 * r426865;
double r426867 = 5.0;
double r426868 = r426864 * r426867;
double r426869 = r426866 + r426868;
return r426869;
}
double f(double x, double y, double z) {
double r426870 = x;
double r426871 = y;
double r426872 = r426870 * r426871;
double r426873 = z;
double r426874 = 5.0;
double r426875 = r426870 + r426874;
double r426876 = r426873 * r426875;
double r426877 = r426872 + r426876;
return r426877;
}




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 2019323
(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)))