\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 r191771 = 1.0;
double r191772 = eps;
double r191773 = r191771 - r191772;
double r191774 = r191771 + r191772;
double r191775 = r191773 / r191774;
double r191776 = log(r191775);
return r191776;
}
double f(double eps) {
double r191777 = 2.0;
double r191778 = eps;
double r191779 = 2.0;
double r191780 = pow(r191778, r191779);
double r191781 = 1.0;
double r191782 = pow(r191781, r191779);
double r191783 = r191780 / r191782;
double r191784 = r191783 + r191778;
double r191785 = r191780 - r191784;
double r191786 = r191777 * r191785;
double r191787 = log(r191781);
double r191788 = r191786 + r191787;
return r191788;
}




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