Average Error: 29.6 → 0.1
Time: 13.4s
Precision: 64
\[\log \left(N + 1\right) - \log N\]
\[\begin{array}{l} \mathbf{if}\;N \le 8386.707428118045:\\ \;\;\;\;\log \left(\frac{1 + N}{N}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{N} - \left(\frac{\frac{1}{2}}{N \cdot N} - \frac{\frac{1}{3}}{\left(N \cdot N\right) \cdot N}\right)\\ \end{array}\]
\log \left(N + 1\right) - \log N
\begin{array}{l}
\mathbf{if}\;N \le 8386.707428118045:\\
\;\;\;\;\log \left(\frac{1 + N}{N}\right)\\

\mathbf{else}:\\
\;\;\;\;\frac{1}{N} - \left(\frac{\frac{1}{2}}{N \cdot N} - \frac{\frac{1}{3}}{\left(N \cdot N\right) \cdot N}\right)\\

\end{array}
double f(double N) {
        double r739225 = N;
        double r739226 = 1.0;
        double r739227 = r739225 + r739226;
        double r739228 = log(r739227);
        double r739229 = log(r739225);
        double r739230 = r739228 - r739229;
        return r739230;
}

double f(double N) {
        double r739231 = N;
        double r739232 = 8386.707428118045;
        bool r739233 = r739231 <= r739232;
        double r739234 = 1.0;
        double r739235 = r739234 + r739231;
        double r739236 = r739235 / r739231;
        double r739237 = log(r739236);
        double r739238 = r739234 / r739231;
        double r739239 = 0.5;
        double r739240 = r739231 * r739231;
        double r739241 = r739239 / r739240;
        double r739242 = 0.3333333333333333;
        double r739243 = r739240 * r739231;
        double r739244 = r739242 / r739243;
        double r739245 = r739241 - r739244;
        double r739246 = r739238 - r739245;
        double r739247 = r739233 ? r739237 : r739246;
        return r739247;
}

Error

Bits error versus N

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if N < 8386.707428118045

    1. Initial program 0.1

      \[\log \left(N + 1\right) - \log N\]
    2. Using strategy rm
    3. Applied add-log-exp0.1

      \[\leadsto \color{blue}{\log \left(e^{\log \left(N + 1\right) - \log N}\right)}\]
    4. Simplified0.1

      \[\leadsto \log \color{blue}{\left(\frac{1 + N}{N}\right)}\]

    if 8386.707428118045 < N

    1. Initial program 59.4

      \[\log \left(N + 1\right) - \log N\]
    2. Using strategy rm
    3. Applied add-log-exp59.4

      \[\leadsto \color{blue}{\log \left(e^{\log \left(N + 1\right) - \log N}\right)}\]
    4. Simplified59.2

      \[\leadsto \log \color{blue}{\left(\frac{1 + N}{N}\right)}\]
    5. Taylor expanded around inf 0.0

      \[\leadsto \color{blue}{\left(\frac{1}{3} \cdot \frac{1}{{N}^{3}} + \frac{1}{N}\right) - \frac{1}{2} \cdot \frac{1}{{N}^{2}}}\]
    6. Simplified0.0

      \[\leadsto \color{blue}{\frac{1}{N} - \left(\frac{\frac{1}{2}}{N \cdot N} - \frac{\frac{1}{3}}{N \cdot \left(N \cdot N\right)}\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification0.1

    \[\leadsto \begin{array}{l} \mathbf{if}\;N \le 8386.707428118045:\\ \;\;\;\;\log \left(\frac{1 + N}{N}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{N} - \left(\frac{\frac{1}{2}}{N \cdot N} - \frac{\frac{1}{3}}{\left(N \cdot N\right) \cdot N}\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019152 
(FPCore (N)
  :name "2log (problem 3.3.6)"
  (- (log (+ N 1)) (log N)))