x - \frac{y - z}{\frac{\left(t - z\right) + 1.0}{a}}x - \frac{1}{\frac{1.0 + \left(t - z\right)}{y - z}} \cdot adouble f(double x, double y, double z, double t, double a) {
double r29247201 = x;
double r29247202 = y;
double r29247203 = z;
double r29247204 = r29247202 - r29247203;
double r29247205 = t;
double r29247206 = r29247205 - r29247203;
double r29247207 = 1.0;
double r29247208 = r29247206 + r29247207;
double r29247209 = a;
double r29247210 = r29247208 / r29247209;
double r29247211 = r29247204 / r29247210;
double r29247212 = r29247201 - r29247211;
return r29247212;
}
double f(double x, double y, double z, double t, double a) {
double r29247213 = x;
double r29247214 = 1.0;
double r29247215 = 1.0;
double r29247216 = t;
double r29247217 = z;
double r29247218 = r29247216 - r29247217;
double r29247219 = r29247215 + r29247218;
double r29247220 = y;
double r29247221 = r29247220 - r29247217;
double r29247222 = r29247219 / r29247221;
double r29247223 = r29247214 / r29247222;
double r29247224 = a;
double r29247225 = r29247223 * r29247224;
double r29247226 = r29247213 - r29247225;
return r29247226;
}




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.4 |
Initial program 2.0
rmApplied associate-/r/0.3
rmApplied clear-num0.4
Final simplification0.4
herbie shell --seed 2019164
(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))))