\log \left(\frac{1 - \varepsilon}{1 + \varepsilon}\right)\left(\frac{-2}{3} \cdot \left(\frac{\varepsilon}{1} \cdot \left(\frac{\varepsilon}{1} \cdot \frac{\varepsilon}{1}\right)\right) - 2 \cdot \varepsilon\right) - \frac{\frac{2}{5}}{{1}^{5}} \cdot {\varepsilon}^{5}double f(double eps) {
double r4491876 = 1.0;
double r4491877 = eps;
double r4491878 = r4491876 - r4491877;
double r4491879 = r4491876 + r4491877;
double r4491880 = r4491878 / r4491879;
double r4491881 = log(r4491880);
return r4491881;
}
double f(double eps) {
double r4491882 = -0.6666666666666666;
double r4491883 = eps;
double r4491884 = 1.0;
double r4491885 = r4491883 / r4491884;
double r4491886 = r4491885 * r4491885;
double r4491887 = r4491885 * r4491886;
double r4491888 = r4491882 * r4491887;
double r4491889 = 2.0;
double r4491890 = r4491889 * r4491883;
double r4491891 = r4491888 - r4491890;
double r4491892 = 0.4;
double r4491893 = 5.0;
double r4491894 = pow(r4491884, r4491893);
double r4491895 = r4491892 / r4491894;
double r4491896 = pow(r4491883, r4491893);
double r4491897 = r4491895 * r4491896;
double r4491898 = r4491891 - r4491897;
return r4491898;
}




Bits error versus eps
Results
| Original | 58.4 |
|---|---|
| Target | 0.2 |
| Herbie | 0.2 |
Initial program 58.4
rmApplied log-div58.4
Taylor expanded around 0 0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019200
(FPCore (eps)
:name "logq (problem 3.4.3)"
:herbie-target
(* -2.0 (+ (+ eps (/ (pow eps 3.0) 3.0)) (/ (pow eps 5.0) 5.0)))
(log (/ (- 1.0 eps) (+ 1.0 eps))))