\frac{\log \left(1 - x\right)}{\log \left(1 + x\right)}\sqrt[3]{\frac{\mathsf{log1p}\left(\left(-x\right)\right)}{\mathsf{log1p}\left(x\right)} \cdot \left(\frac{\mathsf{log1p}\left(\left(-x\right)\right)}{\mathsf{log1p}\left(x\right)} \cdot \frac{\mathsf{log1p}\left(\left(-x\right)\right)}{\mathsf{log1p}\left(x\right)}\right)}double f(double x) {
double r6621241 = 1.0;
double r6621242 = x;
double r6621243 = r6621241 - r6621242;
double r6621244 = log(r6621243);
double r6621245 = r6621241 + r6621242;
double r6621246 = log(r6621245);
double r6621247 = r6621244 / r6621246;
return r6621247;
}
double f(double x) {
double r6621248 = x;
double r6621249 = -r6621248;
double r6621250 = log1p(r6621249);
double r6621251 = log1p(r6621248);
double r6621252 = r6621250 / r6621251;
double r6621253 = r6621252 * r6621252;
double r6621254 = r6621252 * r6621253;
double r6621255 = cbrt(r6621254);
return r6621255;
}




Bits error versus x
Results
| Original | 61.1 |
|---|---|
| Target | 0.4 |
| Herbie | 0.0 |
Initial program 61.1
Simplified60.1
rmApplied sub-neg60.1
Applied log1p-def0.0
rmApplied add-cbrt-cube0.0
Final simplification0.0
herbie shell --seed 2019124 +o rules:numerics
(FPCore (x)
:name "qlog (example 3.10)"
:pre (and (< -1 x) (< x 1))
:herbie-target
(- (+ (+ (+ 1 x) (/ (* x x) 2)) (* 5/12 (pow x 3))))
(/ (log (- 1 x)) (log (+ 1 x))))