\frac{\log \left(1 - x\right)}{\log \left(1 + x\right)}\left(x \cdot x\right) \cdot \frac{-1}{2} + \left(-1 - x\right)double f(double x) {
double r5097329 = 1.0;
double r5097330 = x;
double r5097331 = r5097329 - r5097330;
double r5097332 = log(r5097331);
double r5097333 = r5097329 + r5097330;
double r5097334 = log(r5097333);
double r5097335 = r5097332 / r5097334;
return r5097335;
}
double f(double x) {
double r5097336 = x;
double r5097337 = r5097336 * r5097336;
double r5097338 = -0.5;
double r5097339 = r5097337 * r5097338;
double r5097340 = -1.0;
double r5097341 = r5097340 - r5097336;
double r5097342 = r5097339 + r5097341;
return r5097342;
}




Bits error versus x
Results
| Original | 60.9 |
|---|---|
| Target | 0.3 |
| Herbie | 0.5 |
Initial program 60.9
Taylor expanded around 0 0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2019120
(FPCore (x)
:name "qlog (example 3.10)"
:pre (and (< -1 x) (< x 1))
:herbie-target
(- (+ (+ (+ 1 x) (/ (* x x) 2)) (* 5/12 (pow x 3))))
(/ (log (- 1 x)) (log (+ 1 x))))