\log \left(\frac{1 - \varepsilon}{1 + \varepsilon}\right)\left(\frac{-2}{3} \cdot \varepsilon\right) \cdot \left(\varepsilon \cdot \varepsilon\right) + \left(-2 \cdot \varepsilon - {\varepsilon}^{5} \cdot \frac{2}{5}\right)double f(double eps) {
double r2234673 = 1.0;
double r2234674 = eps;
double r2234675 = r2234673 - r2234674;
double r2234676 = r2234673 + r2234674;
double r2234677 = r2234675 / r2234676;
double r2234678 = log(r2234677);
return r2234678;
}
double f(double eps) {
double r2234679 = -0.6666666666666666;
double r2234680 = eps;
double r2234681 = r2234679 * r2234680;
double r2234682 = r2234680 * r2234680;
double r2234683 = r2234681 * r2234682;
double r2234684 = -2.0;
double r2234685 = r2234684 * r2234680;
double r2234686 = 5.0;
double r2234687 = pow(r2234680, r2234686);
double r2234688 = 0.4;
double r2234689 = r2234687 * r2234688;
double r2234690 = r2234685 - r2234689;
double r2234691 = r2234683 + r2234690;
return r2234691;
}




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 2019158
(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))))