\log \left(\frac{1 - \varepsilon}{1 + \varepsilon}\right)\left(\varepsilon \cdot \left(\varepsilon \cdot \varepsilon\right)\right) \cdot \frac{-2}{3} - \left(2 \cdot \varepsilon + {\varepsilon}^{5} \cdot \frac{2}{5}\right)double f(double eps) {
double r990807 = 1.0;
double r990808 = eps;
double r990809 = r990807 - r990808;
double r990810 = r990807 + r990808;
double r990811 = r990809 / r990810;
double r990812 = log(r990811);
return r990812;
}
double f(double eps) {
double r990813 = eps;
double r990814 = r990813 * r990813;
double r990815 = r990813 * r990814;
double r990816 = -0.6666666666666666;
double r990817 = r990815 * r990816;
double r990818 = 2.0;
double r990819 = r990818 * r990813;
double r990820 = 5.0;
double r990821 = pow(r990813, r990820);
double r990822 = 0.4;
double r990823 = r990821 * r990822;
double r990824 = r990819 + r990823;
double r990825 = r990817 - r990824;
return r990825;
}




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