x \cdot \left(y + z\right) + z \cdot 5
y \cdot x + z \cdot \left(x + 5\right)
double f(double x, double y, double z) {
double r26184340 = x;
double r26184341 = y;
double r26184342 = z;
double r26184343 = r26184341 + r26184342;
double r26184344 = r26184340 * r26184343;
double r26184345 = 5.0;
double r26184346 = r26184342 * r26184345;
double r26184347 = r26184344 + r26184346;
return r26184347;
}
double f(double x, double y, double z) {
double r26184348 = y;
double r26184349 = x;
double r26184350 = r26184348 * r26184349;
double r26184351 = z;
double r26184352 = 5.0;
double r26184353 = r26184349 + r26184352;
double r26184354 = r26184351 * r26184353;
double r26184355 = r26184350 + r26184354;
return r26184355;
}




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-rgt-in0.1
Applied associate-+l+0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019174
(FPCore (x y z)
:name "Graphics.Rendering.Plot.Render.Plot.Legend:renderLegendOutside from plot-0.2.3.4, C"
:herbie-target
(+ (* (+ x 5.0) z) (* x y))
(+ (* x (+ y z)) (* z 5.0)))