\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 r108632 = 1.0;
double r108633 = x;
double r108634 = r108632 - r108633;
double r108635 = log(r108634);
double r108636 = r108632 + r108633;
double r108637 = log(r108636);
double r108638 = r108635 / r108637;
return r108638;
}
double f(double x) {
double r108639 = 1.0;
double r108640 = log(r108639);
double r108641 = x;
double r108642 = r108639 * r108641;
double r108643 = 0.5;
double r108644 = 2.0;
double r108645 = pow(r108641, r108644);
double r108646 = pow(r108639, r108644);
double r108647 = r108645 / r108646;
double r108648 = r108643 * r108647;
double r108649 = r108642 + r108648;
double r108650 = r108640 - r108649;
double r108651 = r108642 + r108640;
double r108652 = r108651 - r108648;
double r108653 = r108650 / r108652;
return r108653;
}




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 add-log-exp0.4
Final simplification0.4
herbie shell --seed 197574269
(FPCore (x)
:name "qlog (example 3.10)"
:precision binary64
:pre (and (< -1 x) (< x 1))
:herbie-target
(- (+ (+ (+ 1 x) (/ (* x x) 2)) (* 0.416666666666666685 (pow x 3))))
(/ (log (- 1 x)) (log (+ 1 x))))