Average Error: 63.0 → 0.0
Time: 4.0s
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 r174380 = n;
        double r174381 = 1.0;
        double r174382 = r174380 + r174381;
        double r174383 = log(r174382);
        double r174384 = r174382 * r174383;
        double r174385 = log(r174380);
        double r174386 = r174380 * r174385;
        double r174387 = r174384 - r174386;
        double r174388 = r174387 - r174381;
        return r174388;
}

double f(double n) {
        double r174389 = 1.0;
        double r174390 = 1.0;
        double r174391 = log(r174390);
        double r174392 = n;
        double r174393 = log(r174392);
        double r174394 = r174391 - r174393;
        double r174395 = r174389 * r174394;
        double r174396 = 0.16666666666666669;
        double r174397 = 2.0;
        double r174398 = pow(r174392, r174397);
        double r174399 = r174390 / r174398;
        double r174400 = r174396 * r174399;
        double r174401 = r174395 + r174400;
        double r174402 = r174389 - r174401;
        double r174403 = 0.5;
        double r174404 = r174403 / r174392;
        double r174405 = r174402 + r174404;
        double r174406 = r174405 - r174389;
        return r174406;
}

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