\frac{\log \left(1 - x\right)}{\log \left(1 + x\right)}\frac{\sqrt[3]{\log 1 - \left(1 \cdot x + \frac{1}{2} \cdot \frac{{x}^{2}}{{1}^{2}}\right)} \cdot \sqrt[3]{\log 1 - \left(1 \cdot x + \frac{1}{2} \cdot \frac{{x}^{2}}{{1}^{2}}\right)}}{\sqrt[3]{\left(1 \cdot x + \log 1\right) - \frac{1}{2} \cdot \frac{{x}^{2}}{{1}^{2}}} \cdot \sqrt[3]{\left(1 \cdot x + \log 1\right) - \frac{1}{2} \cdot \frac{{x}^{2}}{{1}^{2}}}} \cdot \frac{\sqrt[3]{\log 1 - \left(1 \cdot x + \frac{1}{2} \cdot \frac{{x}^{2}}{{1}^{2}}\right)}}{\sqrt[3]{\left(1 \cdot x + \log 1\right) - \frac{1}{2} \cdot \frac{{x}^{2}}{{1}^{2}}}}double f(double x) {
double r77375 = 1.0;
double r77376 = x;
double r77377 = r77375 - r77376;
double r77378 = log(r77377);
double r77379 = r77375 + r77376;
double r77380 = log(r77379);
double r77381 = r77378 / r77380;
return r77381;
}
double f(double x) {
double r77382 = 1.0;
double r77383 = log(r77382);
double r77384 = x;
double r77385 = r77382 * r77384;
double r77386 = 0.5;
double r77387 = 2.0;
double r77388 = pow(r77384, r77387);
double r77389 = pow(r77382, r77387);
double r77390 = r77388 / r77389;
double r77391 = r77386 * r77390;
double r77392 = r77385 + r77391;
double r77393 = r77383 - r77392;
double r77394 = cbrt(r77393);
double r77395 = r77394 * r77394;
double r77396 = r77385 + r77383;
double r77397 = r77396 - r77391;
double r77398 = cbrt(r77397);
double r77399 = r77398 * r77398;
double r77400 = r77395 / r77399;
double r77401 = r77394 / r77398;
double r77402 = r77400 * r77401;
return r77402;
}




Bits error versus x
Results
| Original | 61.3 |
|---|---|
| Target | 0.3 |
| Herbie | 0.5 |
Initial program 61.3
Taylor expanded around 0 60.5
Taylor expanded around 0 0.4
rmApplied add-cube-cbrt1.7
Applied add-cube-cbrt0.5
Applied times-frac0.5
Final simplification0.5
herbie shell --seed 2019318
(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))))