\frac{x \cdot \left(y - z\right)}{t - z}\frac{x}{1 \cdot \frac{t - z}{y - z}}double f(double x, double y, double z, double t) {
double r2259 = x;
double r2260 = y;
double r2261 = z;
double r2262 = r2260 - r2261;
double r2263 = r2259 * r2262;
double r2264 = t;
double r2265 = r2264 - r2261;
double r2266 = r2263 / r2265;
return r2266;
}
double f(double x, double y, double z, double t) {
double r2267 = x;
double r2268 = 1.0;
double r2269 = t;
double r2270 = z;
double r2271 = r2269 - r2270;
double r2272 = y;
double r2273 = r2272 - r2270;
double r2274 = r2271 / r2273;
double r2275 = r2268 * r2274;
double r2276 = r2267 / r2275;
return r2276;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 12.1 |
|---|---|
| Target | 2.0 |
| Herbie | 2.0 |
Initial program 12.1
rmApplied associate-/l*2.0
rmApplied *-un-lft-identity2.0
Applied *-un-lft-identity2.0
Applied times-frac2.0
Simplified2.0
Final simplification2.0
herbie shell --seed 2020025 +o rules:numerics
(FPCore (x y z t)
:name "Graphics.Rendering.Chart.Plot.AreaSpots:renderAreaSpots4D from Chart-1.5.3"
:precision binary64
:herbie-target
(/ x (/ (- t z) (- y z)))
(/ (* x (- y z)) (- t z)))