x + y \cdot \frac{z - t}{z - a}\mathsf{fma}\left(\frac{z - t}{z - a}, y, x\right)double f(double x, double y, double z, double t, double a) {
double r26371749 = x;
double r26371750 = y;
double r26371751 = z;
double r26371752 = t;
double r26371753 = r26371751 - r26371752;
double r26371754 = a;
double r26371755 = r26371751 - r26371754;
double r26371756 = r26371753 / r26371755;
double r26371757 = r26371750 * r26371756;
double r26371758 = r26371749 + r26371757;
return r26371758;
}
double f(double x, double y, double z, double t, double a) {
double r26371759 = z;
double r26371760 = t;
double r26371761 = r26371759 - r26371760;
double r26371762 = a;
double r26371763 = r26371759 - r26371762;
double r26371764 = r26371761 / r26371763;
double r26371765 = y;
double r26371766 = x;
double r26371767 = fma(r26371764, r26371765, r26371766);
return r26371767;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
| Original | 1.3 |
|---|---|
| Target | 1.2 |
| Herbie | 1.3 |
Initial program 1.3
Simplified1.3
Final simplification1.3
herbie shell --seed 2019163 +o rules:numerics
(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)))))