x - \frac{y - z}{\frac{\left(t - z\right) + 1}{a}}x - \left(\frac{y}{\left(t - z\right) + 1} - \frac{z}{\left(t - z\right) + 1}\right) \cdot adouble f(double x, double y, double z, double t, double a) {
double r489240 = x;
double r489241 = y;
double r489242 = z;
double r489243 = r489241 - r489242;
double r489244 = t;
double r489245 = r489244 - r489242;
double r489246 = 1.0;
double r489247 = r489245 + r489246;
double r489248 = a;
double r489249 = r489247 / r489248;
double r489250 = r489243 / r489249;
double r489251 = r489240 - r489250;
return r489251;
}
double f(double x, double y, double z, double t, double a) {
double r489252 = x;
double r489253 = y;
double r489254 = t;
double r489255 = z;
double r489256 = r489254 - r489255;
double r489257 = 1.0;
double r489258 = r489256 + r489257;
double r489259 = r489253 / r489258;
double r489260 = r489255 / r489258;
double r489261 = r489259 - r489260;
double r489262 = a;
double r489263 = r489261 * r489262;
double r489264 = r489252 - r489263;
return r489264;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




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