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 r314114 = x;
double r314115 = y;
double r314116 = z;
double r314117 = r314115 + r314116;
double r314118 = r314114 * r314117;
double r314119 = 5.0;
double r314120 = r314116 * r314119;
double r314121 = r314118 + r314120;
return r314121;
}
double f(double x, double y, double z) {
double r314122 = x;
double r314123 = y;
double r314124 = z;
double r314125 = r314123 + r314124;
double r314126 = 5.0;
double r314127 = r314124 * r314126;
double r314128 = fma(r314122, r314125, r314127);
return r314128;
}




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 2019304 +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)))