\left(\left(n + 1\right) \cdot \log \left(n + 1\right) - n \cdot \log n\right) - 1
\mathsf{fma}\left(\frac{1}{n}, \frac{1}{2} - \frac{\frac{1}{6}}{n}, \log n\right)double f(double n) {
double r2219587 = n;
double r2219588 = 1.0;
double r2219589 = r2219587 + r2219588;
double r2219590 = log(r2219589);
double r2219591 = r2219589 * r2219590;
double r2219592 = log(r2219587);
double r2219593 = r2219587 * r2219592;
double r2219594 = r2219591 - r2219593;
double r2219595 = r2219594 - r2219588;
return r2219595;
}
double f(double n) {
double r2219596 = 1.0;
double r2219597 = n;
double r2219598 = r2219596 / r2219597;
double r2219599 = 0.5;
double r2219600 = 0.16666666666666666;
double r2219601 = r2219600 / r2219597;
double r2219602 = r2219599 - r2219601;
double r2219603 = log(r2219597);
double r2219604 = fma(r2219598, r2219602, r2219603);
return r2219604;
}




Bits error versus n
| Original | 63.0 |
|---|---|
| Target | 0 |
| Herbie | 0 |
Initial program 63.0
Simplified61.9
Taylor expanded around inf 0.0
Simplified0
Final simplification0
herbie shell --seed 2019158 +o rules:numerics
(FPCore (n)
:name "logs (example 3.8)"
:pre (> n 6.8e+15)
:herbie-target
(- (log (+ n 1)) (- (/ 1 (* 2 n)) (- (/ 1 (* 3 (* n n))) (/ 4 (pow n 3)))))
(- (- (* (+ n 1) (log (+ n 1))) (* n (log n))) 1))