x - \frac{y - z}{\frac{\left(t - z\right) + 1}{a}}x - \left(y - z\right) \cdot \frac{a}{t - \left(z - 1\right)}double f(double x, double y, double z, double t, double a) {
double r29072539 = x;
double r29072540 = y;
double r29072541 = z;
double r29072542 = r29072540 - r29072541;
double r29072543 = t;
double r29072544 = r29072543 - r29072541;
double r29072545 = 1.0;
double r29072546 = r29072544 + r29072545;
double r29072547 = a;
double r29072548 = r29072546 / r29072547;
double r29072549 = r29072542 / r29072548;
double r29072550 = r29072539 - r29072549;
return r29072550;
}
double f(double x, double y, double z, double t, double a) {
double r29072551 = x;
double r29072552 = y;
double r29072553 = z;
double r29072554 = r29072552 - r29072553;
double r29072555 = a;
double r29072556 = t;
double r29072557 = 1.0;
double r29072558 = r29072553 - r29072557;
double r29072559 = r29072556 - r29072558;
double r29072560 = r29072555 / r29072559;
double r29072561 = r29072554 * r29072560;
double r29072562 = r29072551 - r29072561;
return r29072562;
}




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 | 1.8 |
Initial program 2.0
rmApplied associate-/r/0.2
rmApplied div-inv0.3
Applied associate-*l*1.8
Simplified1.8
Final simplification1.8
herbie shell --seed 2019168
(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))))