\left(\left(n + 1\right) \cdot \log \left(n + 1\right) - n \cdot \log n\right) - 1
\frac{\frac{1}{2}}{n} - \mathsf{fma}\left(\left(\log n\right), -1, \left(\frac{\frac{1}{6}}{n \cdot n}\right)\right)double f(double n) {
double r1365856 = n;
double r1365857 = 1.0;
double r1365858 = r1365856 + r1365857;
double r1365859 = log(r1365858);
double r1365860 = r1365858 * r1365859;
double r1365861 = log(r1365856);
double r1365862 = r1365856 * r1365861;
double r1365863 = r1365860 - r1365862;
double r1365864 = r1365863 - r1365857;
return r1365864;
}
double f(double n) {
double r1365865 = 0.5;
double r1365866 = n;
double r1365867 = r1365865 / r1365866;
double r1365868 = log(r1365866);
double r1365869 = -1.0;
double r1365870 = 0.16666666666666666;
double r1365871 = r1365866 * r1365866;
double r1365872 = r1365870 / r1365871;
double r1365873 = fma(r1365868, r1365869, r1365872);
double r1365874 = r1365867 - r1365873;
return r1365874;
}




Bits error versus n
| Original | 63.0 |
|---|---|
| Target | 0 |
| Herbie | 0 |
Initial program 63.0
Simplified44.2
Taylor expanded around inf 0.0
Simplified0
Final simplification0
herbie shell --seed 2019128 +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))