\frac{\log \left(1 - x\right)}{\log \left(1 + x\right)}\left(-\left(\frac{1}{2} \cdot \left(x \cdot x\right) + x\right)\right) + -1double f(double x) {
double r1252794 = 1.0;
double r1252795 = x;
double r1252796 = r1252794 - r1252795;
double r1252797 = log(r1252796);
double r1252798 = r1252794 + r1252795;
double r1252799 = log(r1252798);
double r1252800 = r1252797 / r1252799;
return r1252800;
}
double f(double x) {
double r1252801 = 0.5;
double r1252802 = x;
double r1252803 = r1252802 * r1252802;
double r1252804 = r1252801 * r1252803;
double r1252805 = r1252804 + r1252802;
double r1252806 = -r1252805;
double r1252807 = -1.0;
double r1252808 = r1252806 + r1252807;
return r1252808;
}




Bits error versus x
Results
| Original | 61.2 |
|---|---|
| Target | 0.2 |
| Herbie | 0.3 |
Initial program 61.2
Taylor expanded around 0 0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2019128
(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))))