\left(\left(n + 1.0\right) \cdot \log \left(n + 1.0\right) - n \cdot \log n\right) - 1.0
\left(\log n \cdot 1.0 - \frac{0.16666666666666669}{n \cdot n}\right) + \frac{0.5}{n}double f(double n) {
double r2471897 = n;
double r2471898 = 1.0;
double r2471899 = r2471897 + r2471898;
double r2471900 = log(r2471899);
double r2471901 = r2471899 * r2471900;
double r2471902 = log(r2471897);
double r2471903 = r2471897 * r2471902;
double r2471904 = r2471901 - r2471903;
double r2471905 = r2471904 - r2471898;
return r2471905;
}
double f(double n) {
double r2471906 = n;
double r2471907 = log(r2471906);
double r2471908 = 1.0;
double r2471909 = r2471907 * r2471908;
double r2471910 = 0.16666666666666669;
double r2471911 = r2471906 * r2471906;
double r2471912 = r2471910 / r2471911;
double r2471913 = r2471909 - r2471912;
double r2471914 = 0.5;
double r2471915 = r2471914 / r2471906;
double r2471916 = r2471913 + r2471915;
return r2471916;
}




Bits error versus n
Results
| Original | 63.0 |
|---|---|
| Target | 0 |
| Herbie | 0 |
Initial program 63.0
Taylor expanded around inf 0.0
Simplified0.0
Taylor expanded around inf 0.0
Simplified0
Final simplification0
herbie shell --seed 2019165
(FPCore (n)
:name "logs (example 3.8)"
:pre (> n 6.8e+15)
:herbie-target
(- (log (+ n 1.0)) (- (/ 1.0 (* 2.0 n)) (- (/ 1.0 (* 3.0 (* n n))) (/ 4.0 (pow n 3.0)))))
(- (- (* (+ n 1.0) (log (+ n 1.0))) (* n (log n))) 1.0))