x + \frac{y \cdot \left(z - t\right)}{a - t}x + y \cdot \frac{z - t}{a - t}double f(double x, double y, double z, double t, double a) {
double r28128789 = x;
double r28128790 = y;
double r28128791 = z;
double r28128792 = t;
double r28128793 = r28128791 - r28128792;
double r28128794 = r28128790 * r28128793;
double r28128795 = a;
double r28128796 = r28128795 - r28128792;
double r28128797 = r28128794 / r28128796;
double r28128798 = r28128789 + r28128797;
return r28128798;
}
double f(double x, double y, double z, double t, double a) {
double r28128799 = x;
double r28128800 = y;
double r28128801 = z;
double r28128802 = t;
double r28128803 = r28128801 - r28128802;
double r28128804 = a;
double r28128805 = r28128804 - r28128802;
double r28128806 = r28128803 / r28128805;
double r28128807 = r28128800 * r28128806;
double r28128808 = r28128799 + r28128807;
return r28128808;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 10.3 |
|---|---|
| Target | 1.1 |
| Herbie | 1.3 |
Initial program 10.3
rmApplied *-un-lft-identity10.3
Applied times-frac1.3
Simplified1.3
Final simplification1.3
herbie shell --seed 2019168
(FPCore (x y z t a)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisTicks from plot-0.2.3.4, B"
:herbie-target
(+ x (/ y (/ (- a t) (- z t))))
(+ x (/ (* y (- z t)) (- a t))))