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 r425961 = x;
double r425962 = y;
double r425963 = r425962 - r425961;
double r425964 = z;
double r425965 = t;
double r425966 = r425964 / r425965;
double r425967 = r425963 * r425966;
double r425968 = r425961 + r425967;
return r425968;
}
double f(double x, double y, double z, double t) {
double r425969 = x;
double r425970 = y;
double r425971 = r425970 - r425969;
double r425972 = z;
double r425973 = t;
double r425974 = r425972 / r425973;
double r425975 = r425971 * r425974;
double r425976 = r425969 + r425975;
return r425976;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 2.0 |
|---|---|
| Target | 2.1 |
| Herbie | 2.0 |
Initial program 2.0
Final simplification2.0
herbie shell --seed 2019194 +o rules:numerics
(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))))