\frac{\log \left(1 - x\right)}{\log \left(1 + x\right)}\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 r118386 = 1.0;
double r118387 = x;
double r118388 = r118386 - r118387;
double r118389 = log(r118388);
double r118390 = r118386 + r118387;
double r118391 = log(r118390);
double r118392 = r118389 / r118391;
return r118392;
}
double f(double x) {
double r118393 = 1.0;
double r118394 = log(r118393);
double r118395 = x;
double r118396 = r118393 * r118395;
double r118397 = 0.5;
double r118398 = 2.0;
double r118399 = pow(r118395, r118398);
double r118400 = pow(r118393, r118398);
double r118401 = r118399 / r118400;
double r118402 = r118397 * r118401;
double r118403 = r118396 + r118402;
double r118404 = r118394 - r118403;
double r118405 = r118396 + r118394;
double r118406 = r118405 - r118402;
double r118407 = r118404 / r118406;
return r118407;
}




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
Final simplification0.4
herbie shell --seed 2019352
(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))))