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

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

\end{array}
double f(double N) {
        double r4465701 = N;
        double r4465702 = 1.0;
        double r4465703 = r4465701 + r4465702;
        double r4465704 = log(r4465703);
        double r4465705 = log(r4465701);
        double r4465706 = r4465704 - r4465705;
        return r4465706;
}

double f(double N) {
        double r4465707 = N;
        double r4465708 = 9098.449974321133;
        bool r4465709 = r4465707 <= r4465708;
        double r4465710 = 1.0;
        double r4465711 = sqrt(r4465707);
        double r4465712 = r4465710 / r4465711;
        double r4465713 = log(r4465712);
        double r4465714 = r4465710 + r4465707;
        double r4465715 = r4465714 / r4465711;
        double r4465716 = log(r4465715);
        double r4465717 = r4465713 + r4465716;
        double r4465718 = 0.3333333333333333;
        double r4465719 = r4465707 * r4465707;
        double r4465720 = r4465718 / r4465719;
        double r4465721 = r4465720 / r4465707;
        double r4465722 = r4465710 / r4465707;
        double r4465723 = -0.5;
        double r4465724 = r4465723 / r4465719;
        double r4465725 = r4465722 + r4465724;
        double r4465726 = r4465721 + r4465725;
        double r4465727 = r4465709 ? r4465717 : r4465726;
        return r4465727;
}

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

    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)}\]
    5. Using strategy rm
    6. Applied add-sqr-sqrt0.1

      \[\leadsto \log \left(\frac{1 + N}{\color{blue}{\sqrt{N} \cdot \sqrt{N}}}\right)\]
    7. Applied *-un-lft-identity0.1

      \[\leadsto \log \left(\frac{1 + \color{blue}{1 \cdot N}}{\sqrt{N} \cdot \sqrt{N}}\right)\]
    8. Applied *-un-lft-identity0.1

      \[\leadsto \log \left(\frac{\color{blue}{1 \cdot 1} + 1 \cdot N}{\sqrt{N} \cdot \sqrt{N}}\right)\]
    9. Applied distribute-lft-out0.1

      \[\leadsto \log \left(\frac{\color{blue}{1 \cdot \left(1 + N\right)}}{\sqrt{N} \cdot \sqrt{N}}\right)\]
    10. Applied times-frac0.1

      \[\leadsto \log \color{blue}{\left(\frac{1}{\sqrt{N}} \cdot \frac{1 + N}{\sqrt{N}}\right)}\]
    11. Applied log-prod0.1

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

    if 9098.449974321133 < N

    1. Initial program 59.5

      \[\log \left(N + 1\right) - \log N\]
    2. 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}}}\]
    3. Simplified0.0

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

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

Reproduce

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