\frac{\log \left(1 - x\right)}{\log \left(1 + x\right)}\left(\left(-x\right) + -1\right) + \left(x \cdot x\right) \cdot \frac{-1}{2}double f(double x) {
double r941692 = 1.0;
double r941693 = x;
double r941694 = r941692 - r941693;
double r941695 = log(r941694);
double r941696 = r941692 + r941693;
double r941697 = log(r941696);
double r941698 = r941695 / r941697;
return r941698;
}
double f(double x) {
double r941699 = x;
double r941700 = -r941699;
double r941701 = -1.0;
double r941702 = r941700 + r941701;
double r941703 = r941699 * r941699;
double r941704 = -0.5;
double r941705 = r941703 * r941704;
double r941706 = r941702 + r941705;
return r941706;
}




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