\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 r73324 = 1.0;
double r73325 = x;
double r73326 = r73324 - r73325;
double r73327 = log(r73326);
double r73328 = r73324 + r73325;
double r73329 = log(r73328);
double r73330 = r73327 / r73329;
return r73330;
}
double f(double x) {
double r73331 = 1.0;
double r73332 = log(r73331);
double r73333 = x;
double r73334 = r73331 * r73333;
double r73335 = 0.5;
double r73336 = 2.0;
double r73337 = pow(r73333, r73336);
double r73338 = pow(r73331, r73336);
double r73339 = r73337 / r73338;
double r73340 = r73335 * r73339;
double r73341 = r73334 + r73340;
double r73342 = r73332 - r73341;
double r73343 = r73334 + r73332;
double r73344 = r73343 - r73340;
double r73345 = r73342 / r73344;
return r73345;
}




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