Average Error: 63.0 → 0.0
Time: 3.9s
Precision: 64
\[n \gt 6.8 \cdot 10^{15}\]
\[\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) - 1\]
\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) - 1
double 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;
}

Error

Bits error versus n

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original63.0
Target0
Herbie0.0
\[\log \left(n + 1\right) - \left(\frac{1}{2 \cdot n} - \left(\frac{1}{3 \cdot \left(n \cdot n\right)} - \frac{4}{{n}^{3}}\right)\right)\]

Derivation

  1. Initial program 63.0

    \[\left(\left(n + 1\right) \cdot \log \left(n + 1\right) - n \cdot \log n\right) - 1\]
  2. Taylor expanded around inf 0.0

    \[\leadsto \color{blue}{\left(\left(0.5 \cdot \frac{1}{n} + 1\right) - \left(1 \cdot \log \left(\frac{1}{n}\right) + 0.16666666666666669 \cdot \frac{1}{{n}^{2}}\right)\right)} - 1\]
  3. Simplified0.0

    \[\leadsto \color{blue}{\left(\left(1 - \left(1 \cdot \log \left(\frac{1}{n}\right) + 0.16666666666666669 \cdot \frac{1}{{n}^{2}}\right)\right) + \frac{0.5}{n}\right)} - 1\]
  4. Using strategy rm
  5. Applied add-exp-log0.0

    \[\leadsto \left(\left(1 - \left(1 \cdot \log \left(\frac{1}{\color{blue}{e^{\log n}}}\right) + 0.16666666666666669 \cdot \frac{1}{{n}^{2}}\right)\right) + \frac{0.5}{n}\right) - 1\]
  6. Applied add-exp-log0.0

    \[\leadsto \left(\left(1 - \left(1 \cdot \log \left(\frac{\color{blue}{e^{\log 1}}}{e^{\log n}}\right) + 0.16666666666666669 \cdot \frac{1}{{n}^{2}}\right)\right) + \frac{0.5}{n}\right) - 1\]
  7. Applied div-exp0.0

    \[\leadsto \left(\left(1 - \left(1 \cdot \log \color{blue}{\left(e^{\log 1 - \log n}\right)} + 0.16666666666666669 \cdot \frac{1}{{n}^{2}}\right)\right) + \frac{0.5}{n}\right) - 1\]
  8. Applied rem-log-exp0.0

    \[\leadsto \left(\left(1 - \left(1 \cdot \color{blue}{\left(\log 1 - \log n\right)} + 0.16666666666666669 \cdot \frac{1}{{n}^{2}}\right)\right) + \frac{0.5}{n}\right) - 1\]
  9. Final simplification0.0

    \[\leadsto \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) - 1\]

Reproduce

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))