x + \frac{y \cdot \left(z - t\right)}{a - t}x + \frac{y}{\frac{a}{z - t} - \frac{t}{z - t}}double f(double x, double y, double z, double t, double a) {
double r434993 = x;
double r434994 = y;
double r434995 = z;
double r434996 = t;
double r434997 = r434995 - r434996;
double r434998 = r434994 * r434997;
double r434999 = a;
double r435000 = r434999 - r434996;
double r435001 = r434998 / r435000;
double r435002 = r434993 + r435001;
return r435002;
}
double f(double x, double y, double z, double t, double a) {
double r435003 = x;
double r435004 = y;
double r435005 = a;
double r435006 = z;
double r435007 = t;
double r435008 = r435006 - r435007;
double r435009 = r435005 / r435008;
double r435010 = r435007 / r435008;
double r435011 = r435009 - r435010;
double r435012 = r435004 / r435011;
double r435013 = r435003 + r435012;
return r435013;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




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