x + y \cdot \frac{z - t}{a - t}x + y \cdot \left(\left(z - t\right) \cdot \frac{1}{a - t}\right)double f(double x, double y, double z, double t, double a) {
double r26787063 = x;
double r26787064 = y;
double r26787065 = z;
double r26787066 = t;
double r26787067 = r26787065 - r26787066;
double r26787068 = a;
double r26787069 = r26787068 - r26787066;
double r26787070 = r26787067 / r26787069;
double r26787071 = r26787064 * r26787070;
double r26787072 = r26787063 + r26787071;
return r26787072;
}
double f(double x, double y, double z, double t, double a) {
double r26787073 = x;
double r26787074 = y;
double r26787075 = z;
double r26787076 = t;
double r26787077 = r26787075 - r26787076;
double r26787078 = 1.0;
double r26787079 = a;
double r26787080 = r26787079 - r26787076;
double r26787081 = r26787078 / r26787080;
double r26787082 = r26787077 * r26787081;
double r26787083 = r26787074 * r26787082;
double r26787084 = r26787073 + r26787083;
return r26787084;
}




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 | 0.4 |
| Herbie | 1.3 |
Initial program 1.2
rmApplied div-inv1.3
Final simplification1.3
herbie shell --seed 2019165
(FPCore (x y z t a)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisLine from plot-0.2.3.4, B"
:herbie-target
(if (< y -8.508084860551241e-17) (+ x (* y (/ (- z t) (- a t)))) (if (< y 2.894426862792089e-49) (+ x (* (* y (- z t)) (/ 1 (- a t)))) (+ x (* y (/ (- z t) (- a t))))))
(+ x (* y (/ (- z t) (- a t)))))