\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 r77988 = 1.0;
double r77989 = x;
double r77990 = r77988 - r77989;
double r77991 = log(r77990);
double r77992 = r77988 + r77989;
double r77993 = log(r77992);
double r77994 = r77991 / r77993;
return r77994;
}
double f(double x) {
double r77995 = 1.0;
double r77996 = log(r77995);
double r77997 = x;
double r77998 = r77995 * r77997;
double r77999 = 0.5;
double r78000 = 2.0;
double r78001 = pow(r77997, r78000);
double r78002 = pow(r77995, r78000);
double r78003 = r78001 / r78002;
double r78004 = r77999 * r78003;
double r78005 = r77998 + r78004;
double r78006 = r77996 - r78005;
double r78007 = r77998 + r77996;
double r78008 = r78007 - r78004;
double r78009 = r78006 / r78008;
return r78009;
}




Bits error versus x
Results
| Original | 61.5 |
|---|---|
| Target | 0.3 |
| Herbie | 0.4 |
Initial program 61.5
Taylor expanded around 0 60.6
Taylor expanded around 0 0.4
Final simplification0.4
herbie shell --seed 2020001
(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))))