\log \left(\frac{1 - \varepsilon}{1 + \varepsilon}\right)2 \cdot \left(\varepsilon \cdot \varepsilon - \left(\varepsilon + \frac{\varepsilon \cdot \varepsilon}{1 \cdot 1}\right)\right) + \log 1double f(double eps) {
double r5058917 = 1.0;
double r5058918 = eps;
double r5058919 = r5058917 - r5058918;
double r5058920 = r5058917 + r5058918;
double r5058921 = r5058919 / r5058920;
double r5058922 = log(r5058921);
return r5058922;
}
double f(double eps) {
double r5058923 = 2.0;
double r5058924 = eps;
double r5058925 = r5058924 * r5058924;
double r5058926 = 1.0;
double r5058927 = r5058926 * r5058926;
double r5058928 = r5058925 / r5058927;
double r5058929 = r5058924 + r5058928;
double r5058930 = r5058925 - r5058929;
double r5058931 = r5058923 * r5058930;
double r5058932 = log(r5058926);
double r5058933 = r5058931 + r5058932;
return r5058933;
}




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