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 r503529 = x;
double r503530 = y;
double r503531 = z;
double r503532 = r503530 + r503531;
double r503533 = r503529 * r503532;
double r503534 = 5.0;
double r503535 = r503531 * r503534;
double r503536 = r503533 + r503535;
return r503536;
}
double f(double x, double y, double z) {
double r503537 = x;
double r503538 = y;
double r503539 = r503537 * r503538;
double r503540 = z;
double r503541 = r503537 * r503540;
double r503542 = r503539 + r503541;
double r503543 = 5.0;
double r503544 = r503540 * r503543;
double r503545 = r503542 + r503544;
return r503545;
}




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