x - \frac{y - z}{\frac{\left(t - z\right) + 1}{a}}\mathsf{fma}\left(a, \frac{z - y}{\left(t - z\right) + 1}, x\right)double f(double x, double y, double z, double t, double a) {
double r650720 = x;
double r650721 = y;
double r650722 = z;
double r650723 = r650721 - r650722;
double r650724 = t;
double r650725 = r650724 - r650722;
double r650726 = 1.0;
double r650727 = r650725 + r650726;
double r650728 = a;
double r650729 = r650727 / r650728;
double r650730 = r650723 / r650729;
double r650731 = r650720 - r650730;
return r650731;
}
double f(double x, double y, double z, double t, double a) {
double r650732 = a;
double r650733 = z;
double r650734 = y;
double r650735 = r650733 - r650734;
double r650736 = t;
double r650737 = r650736 - r650733;
double r650738 = 1.0;
double r650739 = r650737 + r650738;
double r650740 = r650735 / r650739;
double r650741 = x;
double r650742 = fma(r650732, r650740, r650741);
return r650742;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
| Original | 2.0 |
|---|---|
| Target | 0.2 |
| Herbie | 0.2 |
Initial program 2.0
Simplified0.2
Final simplification0.2
herbie shell --seed 2019350 +o rules:numerics
(FPCore (x y z t a)
:name "Graphics.Rendering.Chart.SparkLine:renderSparkLine from Chart-1.5.3"
:precision binary64
:herbie-target
(- x (* (/ (- y z) (+ (- t z) 1)) a))
(- x (/ (- y z) (/ (+ (- t z) 1) a))))