\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 r85485 = 1.0;
double r85486 = x;
double r85487 = r85485 - r85486;
double r85488 = log(r85487);
double r85489 = r85485 + r85486;
double r85490 = log(r85489);
double r85491 = r85488 / r85490;
return r85491;
}
double f(double x) {
double r85492 = 1.0;
double r85493 = log(r85492);
double r85494 = x;
double r85495 = r85492 * r85494;
double r85496 = 0.5;
double r85497 = 2.0;
double r85498 = pow(r85494, r85497);
double r85499 = pow(r85492, r85497);
double r85500 = r85498 / r85499;
double r85501 = r85496 * r85500;
double r85502 = r85495 + r85501;
double r85503 = r85493 - r85502;
double r85504 = r85495 + r85493;
double r85505 = r85504 - r85501;
double r85506 = r85503 / r85505;
return r85506;
}




Bits error versus x
Results
| Original | 61.4 |
|---|---|
| Target | 0.3 |
| Herbie | 0.4 |
Initial program 61.4
Taylor expanded around 0 60.5
Taylor expanded around 0 0.4
Final simplification0.4
herbie shell --seed 2019199
(FPCore (x)
:name "qlog (example 3.10)"
:pre (and (< -1.0 x) (< x 1.0))
:herbie-target
(- (+ (+ (+ 1.0 x) (/ (* x x) 2.0)) (* 0.4166666666666667 (pow x 3.0))))
(/ (log (- 1.0 x)) (log (+ 1.0 x))))