\frac{\log \left(1 - x\right)}{\log \left(1 + x\right)}\frac{\mathsf{log1p}\left(-x\right)}{\mathsf{log1p}\left(x\right)}double f(double x) {
double r3371047 = 1.0;
double r3371048 = x;
double r3371049 = r3371047 - r3371048;
double r3371050 = log(r3371049);
double r3371051 = r3371047 + r3371048;
double r3371052 = log(r3371051);
double r3371053 = r3371050 / r3371052;
return r3371053;
}
double f(double x) {
double r3371054 = x;
double r3371055 = -r3371054;
double r3371056 = log1p(r3371055);
double r3371057 = log1p(r3371054);
double r3371058 = r3371056 / r3371057;
return r3371058;
}




Bits error versus x
Results
| Original | 60.9 |
|---|---|
| Target | 0.3 |
| Herbie | 0.0 |
Initial program 60.9
Simplified59.9
rmApplied log1p-expm1-u59.9
Simplified0.0
Final simplification0.0
herbie shell --seed 2019158 +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))))