\left(\left(n + 1\right) \cdot \log \left(n + 1\right) - n \cdot \log n\right) - 1
\left(\frac{0.5}{n} - \frac{0.1666666666666666851703837437526090070605}{n \cdot n}\right) + \log n \cdot 1double f(double n) {
double r41004 = n;
double r41005 = 1.0;
double r41006 = r41004 + r41005;
double r41007 = log(r41006);
double r41008 = r41006 * r41007;
double r41009 = log(r41004);
double r41010 = r41004 * r41009;
double r41011 = r41008 - r41010;
double r41012 = r41011 - r41005;
return r41012;
}
double f(double n) {
double r41013 = 0.5;
double r41014 = n;
double r41015 = r41013 / r41014;
double r41016 = 0.16666666666666669;
double r41017 = r41014 * r41014;
double r41018 = r41016 / r41017;
double r41019 = r41015 - r41018;
double r41020 = log(r41014);
double r41021 = 1.0;
double r41022 = r41020 * r41021;
double r41023 = r41019 + r41022;
return r41023;
}




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