x - \frac{y - z}{\frac{\left(t - z\right) + 1}{a}}x - \left(\left(y - z\right) \cdot \frac{1}{\left(t - z\right) + 1}\right) \cdot adouble f(double x, double y, double z, double t, double a) {
double r715244 = x;
double r715245 = y;
double r715246 = z;
double r715247 = r715245 - r715246;
double r715248 = t;
double r715249 = r715248 - r715246;
double r715250 = 1.0;
double r715251 = r715249 + r715250;
double r715252 = a;
double r715253 = r715251 / r715252;
double r715254 = r715247 / r715253;
double r715255 = r715244 - r715254;
return r715255;
}
double f(double x, double y, double z, double t, double a) {
double r715256 = x;
double r715257 = y;
double r715258 = z;
double r715259 = r715257 - r715258;
double r715260 = 1.0;
double r715261 = t;
double r715262 = r715261 - r715258;
double r715263 = 1.0;
double r715264 = r715262 + r715263;
double r715265 = r715260 / r715264;
double r715266 = r715259 * r715265;
double r715267 = a;
double r715268 = r715266 * r715267;
double r715269 = r715256 - r715268;
return r715269;
}




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.2 |
| Herbie | 0.2 |
Initial program 2.0
rmApplied associate-/r/0.2
rmApplied div-inv0.2
Final simplification0.2
herbie shell --seed 2020034
(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))))