x - \frac{y - z}{\frac{\left(t - z\right) + 1}{a}}x - \frac{y - z}{\left(t - z\right) + 1} \cdot adouble f(double x, double y, double z, double t, double a) {
double r583804 = x;
double r583805 = y;
double r583806 = z;
double r583807 = r583805 - r583806;
double r583808 = t;
double r583809 = r583808 - r583806;
double r583810 = 1.0;
double r583811 = r583809 + r583810;
double r583812 = a;
double r583813 = r583811 / r583812;
double r583814 = r583807 / r583813;
double r583815 = r583804 - r583814;
return r583815;
}
double f(double x, double y, double z, double t, double a) {
double r583816 = x;
double r583817 = y;
double r583818 = z;
double r583819 = r583817 - r583818;
double r583820 = t;
double r583821 = r583820 - r583818;
double r583822 = 1.0;
double r583823 = r583821 + r583822;
double r583824 = r583819 / r583823;
double r583825 = a;
double r583826 = r583824 * r583825;
double r583827 = r583816 - r583826;
return r583827;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 1.9 |
|---|---|
| Target | 0.2 |
| Herbie | 0.2 |
Initial program 1.9
rmApplied associate-/r/0.2
Final simplification0.2
herbie shell --seed 2020060 +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))))