x + y \cdot \frac{z - t}{z - a}x + \frac{y}{\left(z - a\right) \cdot \frac{1}{z - t}}double f(double x, double y, double z, double t, double a) {
double r42926083 = x;
double r42926084 = y;
double r42926085 = z;
double r42926086 = t;
double r42926087 = r42926085 - r42926086;
double r42926088 = a;
double r42926089 = r42926085 - r42926088;
double r42926090 = r42926087 / r42926089;
double r42926091 = r42926084 * r42926090;
double r42926092 = r42926083 + r42926091;
return r42926092;
}
double f(double x, double y, double z, double t, double a) {
double r42926093 = x;
double r42926094 = y;
double r42926095 = z;
double r42926096 = a;
double r42926097 = r42926095 - r42926096;
double r42926098 = 1.0;
double r42926099 = t;
double r42926100 = r42926095 - r42926099;
double r42926101 = r42926098 / r42926100;
double r42926102 = r42926097 * r42926101;
double r42926103 = r42926094 / r42926102;
double r42926104 = r42926093 + r42926103;
return r42926104;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 1.2 |
|---|---|
| Target | 1.1 |
| Herbie | 1.2 |
Initial program 1.2
rmApplied clear-num1.2
Applied un-div-inv1.1
rmApplied div-inv1.2
Final simplification1.2
herbie shell --seed 2019158
(FPCore (x y z t a)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisLine from plot-0.2.3.4, A"
:herbie-target
(+ x (/ y (/ (- z a) (- z t))))
(+ x (* y (/ (- z t) (- z a)))))