x \cdot \left(y + z\right) + z \cdot 5
\mathsf{fma}\left(x, y + z, z \cdot 5\right)double f(double x, double y, double z) {
double r443006 = x;
double r443007 = y;
double r443008 = z;
double r443009 = r443007 + r443008;
double r443010 = r443006 * r443009;
double r443011 = 5.0;
double r443012 = r443008 * r443011;
double r443013 = r443010 + r443012;
return r443013;
}
double f(double x, double y, double z) {
double r443014 = x;
double r443015 = y;
double r443016 = z;
double r443017 = r443015 + r443016;
double r443018 = 5.0;
double r443019 = r443016 * r443018;
double r443020 = fma(r443014, r443017, r443019);
return r443020;
}




Bits error versus x




Bits error versus y




Bits error versus z
| Original | 0.1 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019208 +o rules:numerics
(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)))