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 r510232 = x;
double r510233 = y;
double r510234 = z;
double r510235 = r510233 - r510234;
double r510236 = t;
double r510237 = r510236 - r510234;
double r510238 = 1.0;
double r510239 = r510237 + r510238;
double r510240 = a;
double r510241 = r510239 / r510240;
double r510242 = r510235 / r510241;
double r510243 = r510232 - r510242;
return r510243;
}
double f(double x, double y, double z, double t, double a) {
double r510244 = x;
double r510245 = y;
double r510246 = z;
double r510247 = r510245 - r510246;
double r510248 = t;
double r510249 = r510248 - r510246;
double r510250 = 1.0;
double r510251 = r510249 + r510250;
double r510252 = r510247 / r510251;
double r510253 = a;
double r510254 = r510252 * r510253;
double r510255 = r510244 - r510254;
return r510255;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 2.0 |
|---|---|
| Target | 0.3 |
| Herbie | 0.3 |
Initial program 2.0
rmApplied associate-/r/0.3
Final simplification0.3
herbie shell --seed 2019323
(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))))