x + \frac{y \cdot \left(z - t\right)}{a - t}x + \frac{1}{\frac{\frac{a - t}{z - t}}{y}}double f(double x, double y, double z, double t, double a) {
double r644818 = x;
double r644819 = y;
double r644820 = z;
double r644821 = t;
double r644822 = r644820 - r644821;
double r644823 = r644819 * r644822;
double r644824 = a;
double r644825 = r644824 - r644821;
double r644826 = r644823 / r644825;
double r644827 = r644818 + r644826;
return r644827;
}
double f(double x, double y, double z, double t, double a) {
double r644828 = x;
double r644829 = 1.0;
double r644830 = a;
double r644831 = t;
double r644832 = r644830 - r644831;
double r644833 = z;
double r644834 = r644833 - r644831;
double r644835 = r644832 / r644834;
double r644836 = y;
double r644837 = r644835 / r644836;
double r644838 = r644829 / r644837;
double r644839 = r644828 + r644838;
return r644839;
}




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.1 |
| Herbie | 1.2 |
Initial program 10.9
rmApplied associate-/l*1.1
rmApplied clear-num1.2
Final simplification1.2
herbie shell --seed 2020001
(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))))