\frac{\log \left(1 - x\right)}{\log \left(1 + x\right)}\frac{\mathsf{log1p}\left(-x \cdot x\right)}{\mathsf{log1p}\left(x\right)} - \frac{\mathsf{log1p}\left(x\right)}{\mathsf{log1p}\left(x\right)}double f(double x) {
double r1456078 = 1.0;
double r1456079 = x;
double r1456080 = r1456078 - r1456079;
double r1456081 = log(r1456080);
double r1456082 = r1456078 + r1456079;
double r1456083 = log(r1456082);
double r1456084 = r1456081 / r1456083;
return r1456084;
}
double f(double x) {
double r1456085 = x;
double r1456086 = r1456085 * r1456085;
double r1456087 = -r1456086;
double r1456088 = log1p(r1456087);
double r1456089 = log1p(r1456085);
double r1456090 = r1456088 / r1456089;
double r1456091 = r1456089 / r1456089;
double r1456092 = r1456090 - r1456091;
return r1456092;
}




Bits error versus x
Results
| Original | 60.9 |
|---|---|
| Target | 0.4 |
| Herbie | 0.0 |
Initial program 60.9
Simplified59.9
rmApplied flip--59.9
Applied log-div59.9
Applied div-sub59.9
Simplified59.9
Simplified0.6
rmApplied sub-neg0.6
Applied log1p-def0.0
Final simplification0.0
herbie shell --seed 2019153 +o rules:numerics
(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))))