\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 r64566 = 1.0;
double r64567 = x;
double r64568 = r64566 - r64567;
double r64569 = log(r64568);
double r64570 = r64566 + r64567;
double r64571 = log(r64570);
double r64572 = r64569 / r64571;
return r64572;
}
double f(double x) {
double r64573 = 1.0;
double r64574 = log(r64573);
double r64575 = x;
double r64576 = r64573 * r64575;
double r64577 = 0.5;
double r64578 = 2.0;
double r64579 = pow(r64575, r64578);
double r64580 = pow(r64573, r64578);
double r64581 = r64579 / r64580;
double r64582 = r64577 * r64581;
double r64583 = r64576 + r64582;
double r64584 = r64574 - r64583;
double r64585 = r64576 + r64574;
double r64586 = r64585 - r64582;
double r64587 = r64584 / r64586;
return r64587;
}




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