x - \frac{y - z}{\frac{\left(t - z\right) + 1}{a}}x - a \cdot \frac{y - z}{\left(t - z\right) + 1}double f(double x, double y, double z, double t, double a) {
double r450291 = x;
double r450292 = y;
double r450293 = z;
double r450294 = r450292 - r450293;
double r450295 = t;
double r450296 = r450295 - r450293;
double r450297 = 1.0;
double r450298 = r450296 + r450297;
double r450299 = a;
double r450300 = r450298 / r450299;
double r450301 = r450294 / r450300;
double r450302 = r450291 - r450301;
return r450302;
}
double f(double x, double y, double z, double t, double a) {
double r450303 = x;
double r450304 = a;
double r450305 = y;
double r450306 = z;
double r450307 = r450305 - r450306;
double r450308 = t;
double r450309 = r450308 - r450306;
double r450310 = 1.0;
double r450311 = r450309 + r450310;
double r450312 = r450307 / r450311;
double r450313 = r450304 * r450312;
double r450314 = r450303 - r450313;
return r450314;
}




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 2019194
(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))))