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 r338536 = x;
double r338537 = y;
double r338538 = z;
double r338539 = r338537 + r338538;
double r338540 = r338536 * r338539;
double r338541 = 5.0;
double r338542 = r338538 * r338541;
double r338543 = r338540 + r338542;
return r338543;
}
double f(double x, double y, double z) {
double r338544 = x;
double r338545 = y;
double r338546 = z;
double r338547 = r338545 + r338546;
double r338548 = 5.0;
double r338549 = r338546 * r338548;
double r338550 = fma(r338544, r338547, r338549);
return r338550;
}




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