\log \left(\frac{1 - \varepsilon}{1 + \varepsilon}\right)\left(\left(\left(\varepsilon \cdot \varepsilon\right) \cdot \varepsilon\right) \cdot \frac{-2}{3} - {\varepsilon}^{5} \cdot \frac{2}{5}\right) - 2 \cdot \varepsilondouble f(double eps) {
double r756232 = 1.0;
double r756233 = eps;
double r756234 = r756232 - r756233;
double r756235 = r756232 + r756233;
double r756236 = r756234 / r756235;
double r756237 = log(r756236);
return r756237;
}
double f(double eps) {
double r756238 = eps;
double r756239 = r756238 * r756238;
double r756240 = r756239 * r756238;
double r756241 = -0.6666666666666666;
double r756242 = r756240 * r756241;
double r756243 = 5.0;
double r756244 = pow(r756238, r756243);
double r756245 = 0.4;
double r756246 = r756244 * r756245;
double r756247 = r756242 - r756246;
double r756248 = 2.0;
double r756249 = r756248 * r756238;
double r756250 = r756247 - r756249;
return r756250;
}




Bits error versus eps
Results
| Original | 58.6 |
|---|---|
| Target | 0.2 |
| Herbie | 0.2 |
Initial program 58.6
Taylor expanded around 0 0.2
Simplified0.2
rmApplied associate--r+0.2
Final simplification0.2
herbie shell --seed 2019153
(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))))