\frac{\log \left(1 - x\right)}{\log \left(1 + x\right)}\frac{1}{\frac{\left(1 \cdot x + \log 1\right) - \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 r72665 = 1.0;
double r72666 = x;
double r72667 = r72665 - r72666;
double r72668 = log(r72667);
double r72669 = r72665 + r72666;
double r72670 = log(r72669);
double r72671 = r72668 / r72670;
return r72671;
}
double f(double x) {
double r72672 = 1.0;
double r72673 = 1.0;
double r72674 = x;
double r72675 = r72673 * r72674;
double r72676 = log(r72673);
double r72677 = r72675 + r72676;
double r72678 = 0.5;
double r72679 = 2.0;
double r72680 = pow(r72674, r72679);
double r72681 = pow(r72673, r72679);
double r72682 = r72680 / r72681;
double r72683 = r72678 * r72682;
double r72684 = r72677 - r72683;
double r72685 = r72675 + r72683;
double r72686 = r72676 - r72685;
double r72687 = r72684 / r72686;
double r72688 = r72672 / r72687;
return r72688;
}




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
rmApplied clear-num0.4
Final simplification0.4
herbie shell --seed 2019305
(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))))