\log \left(\frac{1 - \varepsilon}{1 + \varepsilon}\right)2 \cdot {\varepsilon}^{2} + \left(\log 1 - 2 \cdot \left(\frac{{\varepsilon}^{2}}{{1}^{2}} + \varepsilon\right)\right)double f(double eps) {
double r98561 = 1.0;
double r98562 = eps;
double r98563 = r98561 - r98562;
double r98564 = r98561 + r98562;
double r98565 = r98563 / r98564;
double r98566 = log(r98565);
return r98566;
}
double f(double eps) {
double r98567 = 2.0;
double r98568 = eps;
double r98569 = 2.0;
double r98570 = pow(r98568, r98569);
double r98571 = r98567 * r98570;
double r98572 = 1.0;
double r98573 = log(r98572);
double r98574 = pow(r98572, r98569);
double r98575 = r98570 / r98574;
double r98576 = r98575 + r98568;
double r98577 = r98567 * r98576;
double r98578 = r98573 - r98577;
double r98579 = r98571 + r98578;
return r98579;
}




Bits error versus eps
Results
| Original | 58.9 |
|---|---|
| Target | 0.1 |
| Herbie | 0.5 |
Initial program 58.9
Taylor expanded around 0 0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2019199
(FPCore (eps)
:name "logq (problem 3.4.3)"
:herbie-target
(* -2.0 (+ (+ eps (/ (pow eps 3.0) 3.0)) (/ (pow eps 5.0) 5.0)))
(log (/ (- 1.0 eps) (+ 1.0 eps))))