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 r399218 = x;
double r399219 = y;
double r399220 = z;
double r399221 = r399219 - r399220;
double r399222 = t;
double r399223 = r399222 - r399220;
double r399224 = 1.0;
double r399225 = r399223 + r399224;
double r399226 = a;
double r399227 = r399225 / r399226;
double r399228 = r399221 / r399227;
double r399229 = r399218 - r399228;
return r399229;
}
double f(double x, double y, double z, double t, double a) {
double r399230 = x;
double r399231 = y;
double r399232 = z;
double r399233 = r399231 - r399232;
double r399234 = t;
double r399235 = r399234 - r399232;
double r399236 = 1.0;
double r399237 = r399235 + r399236;
double r399238 = r399233 / r399237;
double r399239 = a;
double r399240 = r399238 * r399239;
double r399241 = r399230 - r399240;
return r399241;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




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