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 r489237 = x;
double r489238 = y;
double r489239 = z;
double r489240 = r489238 - r489239;
double r489241 = t;
double r489242 = r489241 - r489239;
double r489243 = 1.0;
double r489244 = r489242 + r489243;
double r489245 = a;
double r489246 = r489244 / r489245;
double r489247 = r489240 / r489246;
double r489248 = r489237 - r489247;
return r489248;
}
double f(double x, double y, double z, double t, double a) {
double r489249 = x;
double r489250 = y;
double r489251 = z;
double r489252 = r489250 - r489251;
double r489253 = t;
double r489254 = r489253 - r489251;
double r489255 = 1.0;
double r489256 = r489254 + r489255;
double r489257 = r489252 / r489256;
double r489258 = a;
double r489259 = r489257 * r489258;
double r489260 = r489249 - r489259;
return r489260;
}




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.3 |
| Herbie | 0.3 |
Initial program 1.9
rmApplied associate-/r/0.3
Final simplification0.3
herbie shell --seed 2019199
(FPCore (x y z t a)
:name "Graphics.Rendering.Chart.SparkLine:renderSparkLine from Chart-1.5.3"
:herbie-target
(- x (* (/ (- y z) (+ (- t z) 1.0)) a))
(- x (/ (- y z) (/ (+ (- t z) 1.0) a))))