\log \left(\frac{1 - \varepsilon}{1 + \varepsilon}\right)\log \left(e^{\left(\left(\varepsilon \cdot \varepsilon\right) \cdot \varepsilon\right) \cdot \frac{-2}{3}}\right) - \left(2 \cdot \varepsilon + {\varepsilon}^{5} \cdot \frac{2}{5}\right)double f(double eps) {
double r951355 = 1.0;
double r951356 = eps;
double r951357 = r951355 - r951356;
double r951358 = r951355 + r951356;
double r951359 = r951357 / r951358;
double r951360 = log(r951359);
return r951360;
}
double f(double eps) {
double r951361 = eps;
double r951362 = r951361 * r951361;
double r951363 = r951362 * r951361;
double r951364 = -0.6666666666666666;
double r951365 = r951363 * r951364;
double r951366 = exp(r951365);
double r951367 = log(r951366);
double r951368 = 2.0;
double r951369 = r951368 * r951361;
double r951370 = 5.0;
double r951371 = pow(r951361, r951370);
double r951372 = 0.4;
double r951373 = r951371 * r951372;
double r951374 = r951369 + r951373;
double r951375 = r951367 - r951374;
return r951375;
}




Bits error versus eps
Results
| Original | 58.4 |
|---|---|
| Target | 0.2 |
| Herbie | 0.4 |
Initial program 58.4
Taylor expanded around 0 0.2
Simplified0.2
rmApplied add-log-exp0.4
Final simplification0.4
herbie shell --seed 2019154
(FPCore (eps)
:name "logq (problem 3.4.3)"
:herbie-target
(* -2 (+ (+ eps (/ (pow eps 3) 3)) (/ (pow eps 5) 5)))
(log (/ (- 1 eps) (+ 1 eps))))