\log \left(\frac{1 - \varepsilon}{1 + \varepsilon}\right)\left(\left(\varepsilon \cdot \varepsilon\right) \cdot \varepsilon\right) \cdot \frac{-2}{3} - \left(\varepsilon \cdot 2 + {\varepsilon}^{5} \cdot \frac{2}{5}\right)double f(double eps) {
double r2766286 = 1.0;
double r2766287 = eps;
double r2766288 = r2766286 - r2766287;
double r2766289 = r2766286 + r2766287;
double r2766290 = r2766288 / r2766289;
double r2766291 = log(r2766290);
return r2766291;
}
double f(double eps) {
double r2766292 = eps;
double r2766293 = r2766292 * r2766292;
double r2766294 = r2766293 * r2766292;
double r2766295 = -0.6666666666666666;
double r2766296 = r2766294 * r2766295;
double r2766297 = 2.0;
double r2766298 = r2766292 * r2766297;
double r2766299 = 5.0;
double r2766300 = pow(r2766292, r2766299);
double r2766301 = 0.4;
double r2766302 = r2766300 * r2766301;
double r2766303 = r2766298 + r2766302;
double r2766304 = r2766296 - r2766303;
return r2766304;
}




Bits error versus eps
Results
| Original | 58.4 |
|---|---|
| Target | 0.3 |
| Herbie | 0.3 |
Initial program 58.4
Taylor expanded around 0 0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2019151
(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))))