\frac{\log \left(1 - x\right)}{\log \left(1 + x\right)}\sqrt[3]{\left(\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}}} \cdot \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}}}\right) \cdot \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 r59234 = 1.0;
double r59235 = x;
double r59236 = r59234 - r59235;
double r59237 = log(r59236);
double r59238 = r59234 + r59235;
double r59239 = log(r59238);
double r59240 = r59237 / r59239;
return r59240;
}
double f(double x) {
double r59241 = 1.0;
double r59242 = log(r59241);
double r59243 = x;
double r59244 = r59241 * r59243;
double r59245 = 0.5;
double r59246 = 2.0;
double r59247 = pow(r59243, r59246);
double r59248 = pow(r59241, r59246);
double r59249 = r59247 / r59248;
double r59250 = r59245 * r59249;
double r59251 = r59244 + r59250;
double r59252 = r59242 - r59251;
double r59253 = r59244 + r59242;
double r59254 = r59253 - r59250;
double r59255 = r59252 / r59254;
double r59256 = r59255 * r59255;
double r59257 = r59256 * r59255;
double r59258 = cbrt(r59257);
return r59258;
}




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
rmApplied add-cbrt-cube0.4
Final simplification0.4
herbie shell --seed 2019323
(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))))