x + \frac{y \cdot \left(z - t\right)}{z - a}x + \frac{y}{\frac{z}{z - t} - \frac{a}{z - t}}double f(double x, double y, double z, double t, double a) {
double r498209 = x;
double r498210 = y;
double r498211 = z;
double r498212 = t;
double r498213 = r498211 - r498212;
double r498214 = r498210 * r498213;
double r498215 = a;
double r498216 = r498211 - r498215;
double r498217 = r498214 / r498216;
double r498218 = r498209 + r498217;
return r498218;
}
double f(double x, double y, double z, double t, double a) {
double r498219 = x;
double r498220 = y;
double r498221 = z;
double r498222 = t;
double r498223 = r498221 - r498222;
double r498224 = r498221 / r498223;
double r498225 = a;
double r498226 = r498225 / r498223;
double r498227 = r498224 - r498226;
double r498228 = r498220 / r498227;
double r498229 = r498219 + r498228;
return r498229;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 10.5 |
|---|---|
| Target | 1.3 |
| Herbie | 1.3 |
Initial program 10.5
rmApplied associate-/l*1.3
rmApplied div-sub1.3
Final simplification1.3
herbie shell --seed 2020045
(FPCore (x y z t a)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisTicks from plot-0.2.3.4, A"
:precision binary64
:herbie-target
(+ x (/ y (/ (- z a) (- z t))))
(+ x (/ (* y (- z t)) (- z a))))