\log \left(\frac{1 - \varepsilon}{1 + \varepsilon}\right){\varepsilon}^{5} \cdot \frac{-2}{5} + \left(\left(\left(\varepsilon \cdot \varepsilon\right) \cdot \varepsilon\right) \cdot \frac{-2}{3} + -2 \cdot \varepsilon\right)double f(double eps) {
double r1847104 = 1.0;
double r1847105 = eps;
double r1847106 = r1847104 - r1847105;
double r1847107 = r1847104 + r1847105;
double r1847108 = r1847106 / r1847107;
double r1847109 = log(r1847108);
return r1847109;
}
double f(double eps) {
double r1847110 = eps;
double r1847111 = 5.0;
double r1847112 = pow(r1847110, r1847111);
double r1847113 = -0.4;
double r1847114 = r1847112 * r1847113;
double r1847115 = r1847110 * r1847110;
double r1847116 = r1847115 * r1847110;
double r1847117 = -0.6666666666666666;
double r1847118 = r1847116 * r1847117;
double r1847119 = -2.0;
double r1847120 = r1847119 * r1847110;
double r1847121 = r1847118 + r1847120;
double r1847122 = r1847114 + r1847121;
return r1847122;
}




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