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

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

\end{array}
double f(double N) {
        double r1115033 = N;
        double r1115034 = 1.0;
        double r1115035 = r1115033 + r1115034;
        double r1115036 = log(r1115035);
        double r1115037 = log(r1115033);
        double r1115038 = r1115036 - r1115037;
        return r1115038;
}

double f(double N) {
        double r1115039 = N;
        double r1115040 = 8810.738870329447;
        bool r1115041 = r1115039 <= r1115040;
        double r1115042 = 1.0;
        double r1115043 = r1115042 + r1115039;
        double r1115044 = r1115043 / r1115039;
        double r1115045 = log(r1115044);
        double r1115046 = 0.3333333333333333;
        double r1115047 = r1115046 / r1115039;
        double r1115048 = r1115039 * r1115039;
        double r1115049 = r1115047 / r1115048;
        double r1115050 = r1115042 / r1115039;
        double r1115051 = r1115049 + r1115050;
        double r1115052 = -0.5;
        double r1115053 = r1115052 / r1115048;
        double r1115054 = r1115051 + r1115053;
        double r1115055 = r1115041 ? r1115045 : r1115054;
        return r1115055;
}

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

    1. Initial program 0.1

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

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

    if 8810.738870329447 < N

    1. Initial program 59.6

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

      \[\leadsto \color{blue}{\log \left(\frac{N + 1}{N}\right)}\]
    4. 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}}}\]
    5. Simplified0.0

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

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

Reproduce

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