\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 r201172 = 1.0;
double r201173 = x;
double r201174 = r201172 - r201173;
double r201175 = log(r201174);
double r201176 = r201172 + r201173;
double r201177 = log(r201176);
double r201178 = r201175 / r201177;
return r201178;
}
double f(double x) {
double r201179 = 1.0;
double r201180 = log(r201179);
double r201181 = x;
double r201182 = r201179 * r201181;
double r201183 = 0.5;
double r201184 = 2.0;
double r201185 = pow(r201181, r201184);
double r201186 = pow(r201179, r201184);
double r201187 = r201185 / r201186;
double r201188 = r201183 * r201187;
double r201189 = r201182 + r201188;
double r201190 = r201180 - r201189;
double r201191 = r201182 + r201180;
double r201192 = r201191 - r201188;
double r201193 = r201190 / r201192;
return r201193;
}




Bits error versus x
Results
| Original | 61.3 |
|---|---|
| Target | 0.4 |
| Herbie | 0.5 |
Initial program 61.3
Taylor expanded around 0 60.5
Taylor expanded around 0 0.5
Final simplification0.5
herbie shell --seed 2019322
(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))))