x + \left(y - x\right) \cdot \frac{z}{t}x + \left(y - x\right) \cdot \frac{z}{t}double f(double x, double y, double z, double t) {
double r449676 = x;
double r449677 = y;
double r449678 = r449677 - r449676;
double r449679 = z;
double r449680 = t;
double r449681 = r449679 / r449680;
double r449682 = r449678 * r449681;
double r449683 = r449676 + r449682;
return r449683;
}
double f(double x, double y, double z, double t) {
double r449684 = x;
double r449685 = y;
double r449686 = r449685 - r449684;
double r449687 = z;
double r449688 = t;
double r449689 = r449687 / r449688;
double r449690 = r449686 * r449689;
double r449691 = r449684 + r449690;
return r449691;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 2.0 |
|---|---|
| Target | 2.3 |
| Herbie | 2.0 |
Initial program 2.0
Final simplification2.0
herbie shell --seed 2019199
(FPCore (x y z t)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:tickPosition from plot-0.2.3.4"
:herbie-target
(if (< (* (- y x) (/ z t)) -1013646692435.8867) (+ x (/ (- y x) (/ t z))) (if (< (* (- y x) (/ z t)) -0.0) (+ x (/ (* (- y x) z) t)) (+ x (/ (- y x) (/ t z)))))
(+ x (* (- y x) (/ z t))))