\frac{\log \left(1 - x\right)}{\log \left(1 + x\right)}\frac{1}{\frac{1 \cdot x + \log 1}{\log 1 - \left(1 \cdot x + \frac{1}{2} \cdot \frac{{x}^{2}}{{1}^{2}}\right)} - \frac{\frac{1}{2} \cdot \frac{{x}^{2}}{{1}^{2}}}{\log 1 - \left(1 \cdot x + \frac{1}{2} \cdot \frac{{x}^{2}}{{1}^{2}}\right)}}double f(double x) {
double r89342 = 1.0;
double r89343 = x;
double r89344 = r89342 - r89343;
double r89345 = log(r89344);
double r89346 = r89342 + r89343;
double r89347 = log(r89346);
double r89348 = r89345 / r89347;
return r89348;
}
double f(double x) {
double r89349 = 1.0;
double r89350 = 1.0;
double r89351 = x;
double r89352 = r89350 * r89351;
double r89353 = log(r89350);
double r89354 = r89352 + r89353;
double r89355 = 0.5;
double r89356 = 2.0;
double r89357 = pow(r89351, r89356);
double r89358 = pow(r89350, r89356);
double r89359 = r89357 / r89358;
double r89360 = r89355 * r89359;
double r89361 = r89352 + r89360;
double r89362 = r89353 - r89361;
double r89363 = r89354 / r89362;
double r89364 = r89360 / r89362;
double r89365 = r89363 - r89364;
double r89366 = r89349 / r89365;
return r89366;
}




Bits error versus x
Results
| Original | 61.5 |
|---|---|
| Target | 0.3 |
| Herbie | 0.4 |
Initial program 61.5
Taylor expanded around 0 60.6
Taylor expanded around 0 0.4
rmApplied clear-num0.4
rmApplied div-sub0.4
Final simplification0.4
herbie shell --seed 2020062
(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))))