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 r382738 = x;
double r382739 = y;
double r382740 = z;
double r382741 = r382739 - r382740;
double r382742 = t;
double r382743 = r382742 - r382740;
double r382744 = 1.0;
double r382745 = r382743 + r382744;
double r382746 = a;
double r382747 = r382745 / r382746;
double r382748 = r382741 / r382747;
double r382749 = r382738 - r382748;
return r382749;
}
double f(double x, double y, double z, double t, double a) {
double r382750 = a;
double r382751 = z;
double r382752 = y;
double r382753 = r382751 - r382752;
double r382754 = t;
double r382755 = r382754 - r382751;
double r382756 = 1.0;
double r382757 = r382755 + r382756;
double r382758 = r382753 / r382757;
double r382759 = x;
double r382760 = fma(r382750, r382758, r382759);
return r382760;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
| Original | 2.1 |
|---|---|
| Target | 0.2 |
| Herbie | 0.2 |
Initial program 2.1
Simplified0.2
Final simplification0.2
herbie shell --seed 2019326 +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))))