\log \left(\frac{1 - \varepsilon}{1 + \varepsilon}\right)-\left({\varepsilon}^{5} \cdot \frac{2}{5} + \left(\varepsilon \cdot 2 + \varepsilon \cdot \left(\frac{2}{3} \cdot \left(\varepsilon \cdot \varepsilon\right)\right)\right)\right)double f(double eps) {
double r2698810 = 1.0;
double r2698811 = eps;
double r2698812 = r2698810 - r2698811;
double r2698813 = r2698810 + r2698811;
double r2698814 = r2698812 / r2698813;
double r2698815 = log(r2698814);
return r2698815;
}
double f(double eps) {
double r2698816 = eps;
double r2698817 = 5.0;
double r2698818 = pow(r2698816, r2698817);
double r2698819 = 0.4;
double r2698820 = r2698818 * r2698819;
double r2698821 = 2.0;
double r2698822 = r2698816 * r2698821;
double r2698823 = 0.6666666666666666;
double r2698824 = r2698816 * r2698816;
double r2698825 = r2698823 * r2698824;
double r2698826 = r2698816 * r2698825;
double r2698827 = r2698822 + r2698826;
double r2698828 = r2698820 + r2698827;
double r2698829 = -r2698828;
return r2698829;
}




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 distribute-rgt-in0.2
Final simplification0.2
herbie shell --seed 2019134
(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))))