\left(\left(n + 1\right) \cdot \log \left(n + 1\right) - n \cdot \log n\right) - 1
1 \cdot \log n + \left(0.5 \cdot \frac{1}{n} - \frac{0.16666666666666669}{{n}^{2}}\right)double f(double n) {
double r128099 = n;
double r128100 = 1.0;
double r128101 = r128099 + r128100;
double r128102 = log(r128101);
double r128103 = r128101 * r128102;
double r128104 = log(r128099);
double r128105 = r128099 * r128104;
double r128106 = r128103 - r128105;
double r128107 = r128106 - r128100;
return r128107;
}
double f(double n) {
double r128108 = 1.0;
double r128109 = n;
double r128110 = log(r128109);
double r128111 = r128108 * r128110;
double r128112 = 0.5;
double r128113 = 1.0;
double r128114 = r128113 / r128109;
double r128115 = r128112 * r128114;
double r128116 = 0.16666666666666669;
double r128117 = 2.0;
double r128118 = pow(r128109, r128117);
double r128119 = r128116 / r128118;
double r128120 = r128115 - r128119;
double r128121 = r128111 + r128120;
return r128121;
}




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 0 0
Simplified0
Final simplification0
herbie shell --seed 2020062
(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))