x + y \cdot \frac{z - t}{z - a}x + y \cdot \left(\left(z - t\right) \cdot \frac{1}{z - a}\right)double f(double x, double y, double z, double t, double a) {
double r413173 = x;
double r413174 = y;
double r413175 = z;
double r413176 = t;
double r413177 = r413175 - r413176;
double r413178 = a;
double r413179 = r413175 - r413178;
double r413180 = r413177 / r413179;
double r413181 = r413174 * r413180;
double r413182 = r413173 + r413181;
return r413182;
}
double f(double x, double y, double z, double t, double a) {
double r413183 = x;
double r413184 = y;
double r413185 = z;
double r413186 = t;
double r413187 = r413185 - r413186;
double r413188 = 1.0;
double r413189 = a;
double r413190 = r413185 - r413189;
double r413191 = r413188 / r413190;
double r413192 = r413187 * r413191;
double r413193 = r413184 * r413192;
double r413194 = r413183 + r413193;
return r413194;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 1.4 |
|---|---|
| Target | 1.4 |
| Herbie | 1.5 |
Initial program 1.4
rmApplied div-inv1.5
Final simplification1.5
herbie shell --seed 2019325
(FPCore (x y z t a)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisLine from plot-0.2.3.4, A"
:precision binary64
:herbie-target
(+ x (/ y (/ (- z a) (- z t))))
(+ x (* y (/ (- z t) (- z a)))))