x + \left(y - x\right) \cdot \frac{z}{t}\frac{y}{\frac{t}{z}} - \left(\frac{x}{\frac{t}{z}} - x\right)double f(double x, double y, double z, double t) {
double r469259 = x;
double r469260 = y;
double r469261 = r469260 - r469259;
double r469262 = z;
double r469263 = t;
double r469264 = r469262 / r469263;
double r469265 = r469261 * r469264;
double r469266 = r469259 + r469265;
return r469266;
}
double f(double x, double y, double z, double t) {
double r469267 = y;
double r469268 = t;
double r469269 = z;
double r469270 = r469268 / r469269;
double r469271 = r469267 / r469270;
double r469272 = x;
double r469273 = r469272 / r469270;
double r469274 = r469273 - r469272;
double r469275 = r469271 - r469274;
return r469275;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 2.2 |
|---|---|
| Target | 2.4 |
| Herbie | 2.2 |
Initial program 2.2
Simplified2.2
rmApplied fma-udef2.2
Simplified2.2
rmApplied div-sub2.2
Applied associate-+l-2.2
Final simplification2.2
herbie shell --seed 2019323 +o rules:numerics
(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))))