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 r596851 = x;
double r596852 = y;
double r596853 = r596852 - r596851;
double r596854 = z;
double r596855 = t;
double r596856 = r596854 / r596855;
double r596857 = r596853 * r596856;
double r596858 = r596851 + r596857;
return r596858;
}
double f(double x, double y, double z, double t) {
double r596859 = x;
double r596860 = y;
double r596861 = r596860 - r596859;
double r596862 = z;
double r596863 = t;
double r596864 = r596862 / r596863;
double r596865 = r596861 * r596864;
double r596866 = r596859 + r596865;
return r596866;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.9 |
|---|---|
| Target | 2.0 |
| Herbie | 1.9 |
Initial program 1.9
Final simplification1.9
herbie shell --seed 2020049
(FPCore (x y z t)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:tickPosition from plot-0.2.3.4"
:precision binary64
:herbie-target
(if (< (* (- y x) (/ z t)) -1013646692435.887) (+ 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))))