x + y \cdot \frac{z - t}{z - a}\frac{z - t}{z - a} \cdot y + xdouble f(double x, double y, double z, double t, double a) {
double r641510 = x;
double r641511 = y;
double r641512 = z;
double r641513 = t;
double r641514 = r641512 - r641513;
double r641515 = a;
double r641516 = r641512 - r641515;
double r641517 = r641514 / r641516;
double r641518 = r641511 * r641517;
double r641519 = r641510 + r641518;
return r641519;
}
double f(double x, double y, double z, double t, double a) {
double r641520 = z;
double r641521 = t;
double r641522 = r641520 - r641521;
double r641523 = a;
double r641524 = r641520 - r641523;
double r641525 = r641522 / r641524;
double r641526 = y;
double r641527 = r641525 * r641526;
double r641528 = x;
double r641529 = r641527 + r641528;
return r641529;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 1.4 |
|---|---|
| Target | 1.2 |
| Herbie | 1.4 |
Initial program 1.4
rmApplied add-cbrt-cube20.7
Applied add-cbrt-cube40.3
Applied cbrt-undiv41.2
Simplified11.0
rmApplied *-un-lft-identity11.0
Applied associate-*l*11.0
Simplified1.4
Final simplification1.4
herbie shell --seed 2019362
(FPCore (x y z t a)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisLine from plot-0.2.3.4, A"
:precision binary64
:herbie-target
(+ x (/ y (/ (- z a) (- z t))))
(+ x (* y (/ (- z t) (- z a)))))