\left(\left(n + 1\right) \cdot \log \left(n + 1\right) - n \cdot \log n\right) - 1
\left(\left(1 - \left(1 \cdot \left(\log 1 - \log n\right) + 0.16666666666666669 \cdot \frac{1}{{n}^{2}}\right)\right) + \frac{0.5}{n}\right) - 1double f(double n) {
double r75916 = n;
double r75917 = 1.0;
double r75918 = r75916 + r75917;
double r75919 = log(r75918);
double r75920 = r75918 * r75919;
double r75921 = log(r75916);
double r75922 = r75916 * r75921;
double r75923 = r75920 - r75922;
double r75924 = r75923 - r75917;
return r75924;
}
double f(double n) {
double r75925 = 1.0;
double r75926 = 1.0;
double r75927 = log(r75926);
double r75928 = n;
double r75929 = log(r75928);
double r75930 = r75927 - r75929;
double r75931 = r75925 * r75930;
double r75932 = 0.16666666666666669;
double r75933 = 2.0;
double r75934 = pow(r75928, r75933);
double r75935 = r75926 / r75934;
double r75936 = r75932 * r75935;
double r75937 = r75931 + r75936;
double r75938 = r75925 - r75937;
double r75939 = 0.5;
double r75940 = r75939 / r75928;
double r75941 = r75938 + r75940;
double r75942 = r75941 - r75925;
return r75942;
}




Bits error versus n
Results
| Original | 63.0 |
|---|---|
| Target | 0 |
| Herbie | 0.0 |
Initial program 63.0
Taylor expanded around inf 0.0
Simplified0.0
rmApplied add-exp-log0.0
Applied add-exp-log0.0
Applied div-exp0.0
Applied rem-log-exp0.0
Final simplification0.0
herbie shell --seed 2020049
(FPCore (n)
:name "logs (example 3.8)"
:precision binary64
: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))