x + \frac{y \cdot \left(z - t\right)}{z - a}\left(x + \frac{z}{\frac{z - a}{y}}\right) - \frac{t}{\frac{z - a}{y}}double f(double x, double y, double z, double t, double a) {
double r353195 = x;
double r353196 = y;
double r353197 = z;
double r353198 = t;
double r353199 = r353197 - r353198;
double r353200 = r353196 * r353199;
double r353201 = a;
double r353202 = r353197 - r353201;
double r353203 = r353200 / r353202;
double r353204 = r353195 + r353203;
return r353204;
}
double f(double x, double y, double z, double t, double a) {
double r353205 = x;
double r353206 = z;
double r353207 = a;
double r353208 = r353206 - r353207;
double r353209 = y;
double r353210 = r353208 / r353209;
double r353211 = r353206 / r353210;
double r353212 = r353205 + r353211;
double r353213 = t;
double r353214 = r353213 / r353210;
double r353215 = r353212 - r353214;
return r353215;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 10.9 |
|---|---|
| Target | 1.3 |
| Herbie | 2.8 |
Initial program 10.9
rmApplied *-un-lft-identity10.9
Applied times-frac1.4
Simplified1.4
rmApplied add-cube-cbrt1.9
Applied add-cube-cbrt1.8
Applied times-frac1.8
Applied associate-*r*0.6
Final simplification2.8
herbie shell --seed 1978988140
(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))))