Average Error: 30.1 → 0.1
Time: 5.0s
Precision: 64
\[\log \left(N + 1\right) - \log N\]
\[\begin{array}{l} \mathbf{if}\;N \le 9454.187458193411657703109085559844970703:\\ \;\;\;\;\log \left(\frac{N + 1}{N}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{{N}^{2}} \cdot \left(\frac{0.3333333333333333148296162562473909929395}{N} - 0.5\right) + \frac{1}{N}\\ \end{array}\]
\log \left(N + 1\right) - \log N
\begin{array}{l}
\mathbf{if}\;N \le 9454.187458193411657703109085559844970703:\\
\;\;\;\;\log \left(\frac{N + 1}{N}\right)\\

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

\end{array}
double f(double N) {
        double r73954 = N;
        double r73955 = 1.0;
        double r73956 = r73954 + r73955;
        double r73957 = log(r73956);
        double r73958 = log(r73954);
        double r73959 = r73957 - r73958;
        return r73959;
}

double f(double N) {
        double r73960 = N;
        double r73961 = 9454.187458193412;
        bool r73962 = r73960 <= r73961;
        double r73963 = 1.0;
        double r73964 = r73960 + r73963;
        double r73965 = r73964 / r73960;
        double r73966 = log(r73965);
        double r73967 = 1.0;
        double r73968 = 2.0;
        double r73969 = pow(r73960, r73968);
        double r73970 = r73967 / r73969;
        double r73971 = 0.3333333333333333;
        double r73972 = r73971 / r73960;
        double r73973 = 0.5;
        double r73974 = r73972 - r73973;
        double r73975 = r73970 * r73974;
        double r73976 = r73963 / r73960;
        double r73977 = r73975 + r73976;
        double r73978 = r73962 ? r73966 : r73977;
        return r73978;
}

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

    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 9454.187458193412 < N

    1. Initial program 59.4

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

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

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

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

Reproduce

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