\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 r104465 = 1.0;
double r104466 = x;
double r104467 = r104465 - r104466;
double r104468 = log(r104467);
double r104469 = r104465 + r104466;
double r104470 = log(r104469);
double r104471 = r104468 / r104470;
return r104471;
}
double f(double x) {
double r104472 = 1.0;
double r104473 = log(r104472);
double r104474 = x;
double r104475 = r104472 * r104474;
double r104476 = 0.5;
double r104477 = 2.0;
double r104478 = pow(r104474, r104477);
double r104479 = pow(r104472, r104477);
double r104480 = r104478 / r104479;
double r104481 = r104476 * r104480;
double r104482 = r104475 + r104481;
double r104483 = r104473 - r104482;
double r104484 = r104475 + r104473;
double r104485 = r104484 - r104481;
double r104486 = r104483 / r104485;
return r104486;
}




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