\log \left(\frac{1 - \varepsilon}{1 + \varepsilon}\right)2 \cdot \left({\varepsilon}^{2} - \left(\frac{{\varepsilon}^{2}}{{1}^{2}} + \varepsilon\right)\right) + \log 1double f(double eps) {
double r59280 = 1.0;
double r59281 = eps;
double r59282 = r59280 - r59281;
double r59283 = r59280 + r59281;
double r59284 = r59282 / r59283;
double r59285 = log(r59284);
return r59285;
}
double f(double eps) {
double r59286 = 2.0;
double r59287 = eps;
double r59288 = 2.0;
double r59289 = pow(r59287, r59288);
double r59290 = 1.0;
double r59291 = pow(r59290, r59288);
double r59292 = r59289 / r59291;
double r59293 = r59292 + r59287;
double r59294 = r59289 - r59293;
double r59295 = r59286 * r59294;
double r59296 = log(r59290);
double r59297 = r59295 + r59296;
return r59297;
}




Bits error versus eps
Results
| Original | 58.5 |
|---|---|
| Target | 0.3 |
| Herbie | 0.7 |
Initial program 58.5
Taylor expanded around 0 0.7
Simplified0.7
Final simplification0.7
herbie shell --seed 2019303
(FPCore (eps)
:name "logq (problem 3.4.3)"
:precision binary64
:herbie-target
(* -2 (+ (+ eps (/ (pow eps 3) 3)) (/ (pow eps 5) 5)))
(log (/ (- 1 eps) (+ 1 eps))))