\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 r96521 = 1.0;
double r96522 = x;
double r96523 = r96521 - r96522;
double r96524 = log(r96523);
double r96525 = r96521 + r96522;
double r96526 = log(r96525);
double r96527 = r96524 / r96526;
return r96527;
}
double f(double x) {
double r96528 = 1.0;
double r96529 = log(r96528);
double r96530 = x;
double r96531 = r96528 * r96530;
double r96532 = 0.5;
double r96533 = 2.0;
double r96534 = pow(r96530, r96533);
double r96535 = pow(r96528, r96533);
double r96536 = r96534 / r96535;
double r96537 = r96532 * r96536;
double r96538 = r96531 + r96537;
double r96539 = r96529 - r96538;
double r96540 = cbrt(r96539);
double r96541 = r96540 * r96540;
double r96542 = r96531 + r96529;
double r96543 = r96542 - r96537;
double r96544 = cbrt(r96543);
double r96545 = r96544 * r96544;
double r96546 = r96541 / r96545;
double r96547 = r96540 / r96544;
double r96548 = r96546 * r96547;
return r96548;
}




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