\frac{\log \left(1 - x\right)}{\log \left(1 + x\right)}\frac{\log 1 - \left(1 \cdot x + \frac{1}{2} \cdot \frac{{x}^{2}}{{1}^{2}}\right)}{\left(1 \cdot x + \log 1\right) - \frac{1}{2} \cdot \frac{{x}^{2}}{{1}^{2}}}double f(double x) {
double r81839 = 1.0;
double r81840 = x;
double r81841 = r81839 - r81840;
double r81842 = log(r81841);
double r81843 = r81839 + r81840;
double r81844 = log(r81843);
double r81845 = r81842 / r81844;
return r81845;
}
double f(double x) {
double r81846 = 1.0;
double r81847 = log(r81846);
double r81848 = x;
double r81849 = r81846 * r81848;
double r81850 = 0.5;
double r81851 = 2.0;
double r81852 = pow(r81848, r81851);
double r81853 = pow(r81846, r81851);
double r81854 = r81852 / r81853;
double r81855 = r81850 * r81854;
double r81856 = r81849 + r81855;
double r81857 = r81847 - r81856;
double r81858 = r81849 + r81847;
double r81859 = r81858 - r81855;
double r81860 = r81857 / r81859;
return r81860;
}




Bits error versus x
Results
| Original | 61.6 |
|---|---|
| Target | 0.3 |
| Herbie | 0.4 |
Initial program 61.6
Taylor expanded around 0 60.6
Taylor expanded around 0 0.4
Final simplification0.4
herbie shell --seed 2020064
(FPCore (x)
:name "qlog (example 3.10)"
:precision binary64
:pre (and (< -1 x) (< x 1))
:herbie-target
(- (+ (+ (+ 1 x) (/ (* x x) 2)) (* 0.4166666666666667 (pow x 3))))
(/ (log (- 1 x)) (log (+ 1 x))))