Average Error: 29.8 → 0.2
Time: 12.5s
Precision: 64
\[\log \left(N + 1\right) - \log N\]
\[\begin{array}{l} \mathbf{if}\;\log \left(N + 1\right) - \log N \le 5.1047487659161561168730258941650390625 \cdot 10^{-7}:\\ \;\;\;\;\frac{\frac{\frac{0.3333333333333333148296162562473909929395}{{N}^{2}} \cdot \frac{0.3333333333333333148296162562473909929395}{{N}^{2}} - \left(1 - \frac{0.5}{N}\right) \cdot \left(1 - \frac{0.5}{N}\right)}{N}}{\frac{0.3333333333333333148296162562473909929395}{{N}^{2}} - \left(1 - \frac{0.5}{N}\right)}\\ \mathbf{else}:\\ \;\;\;\;\left(\log \left({N}^{3} + {1}^{3}\right) - \log \left(N \cdot N + \left(1 \cdot 1 - N \cdot 1\right)\right)\right) - \log N\\ \end{array}\]
\log \left(N + 1\right) - \log N
\begin{array}{l}
\mathbf{if}\;\log \left(N + 1\right) - \log N \le 5.1047487659161561168730258941650390625 \cdot 10^{-7}:\\
\;\;\;\;\frac{\frac{\frac{0.3333333333333333148296162562473909929395}{{N}^{2}} \cdot \frac{0.3333333333333333148296162562473909929395}{{N}^{2}} - \left(1 - \frac{0.5}{N}\right) \cdot \left(1 - \frac{0.5}{N}\right)}{N}}{\frac{0.3333333333333333148296162562473909929395}{{N}^{2}} - \left(1 - \frac{0.5}{N}\right)}\\

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

\end{array}
double f(double N) {
        double r35420 = N;
        double r35421 = 1.0;
        double r35422 = r35420 + r35421;
        double r35423 = log(r35422);
        double r35424 = log(r35420);
        double r35425 = r35423 - r35424;
        return r35425;
}

double f(double N) {
        double r35426 = N;
        double r35427 = 1.0;
        double r35428 = r35426 + r35427;
        double r35429 = log(r35428);
        double r35430 = log(r35426);
        double r35431 = r35429 - r35430;
        double r35432 = 5.104748765916156e-07;
        bool r35433 = r35431 <= r35432;
        double r35434 = 0.3333333333333333;
        double r35435 = 2.0;
        double r35436 = pow(r35426, r35435);
        double r35437 = r35434 / r35436;
        double r35438 = r35437 * r35437;
        double r35439 = 0.5;
        double r35440 = r35439 / r35426;
        double r35441 = r35427 - r35440;
        double r35442 = r35441 * r35441;
        double r35443 = r35438 - r35442;
        double r35444 = r35443 / r35426;
        double r35445 = r35437 - r35441;
        double r35446 = r35444 / r35445;
        double r35447 = 3.0;
        double r35448 = pow(r35426, r35447);
        double r35449 = pow(r35427, r35447);
        double r35450 = r35448 + r35449;
        double r35451 = log(r35450);
        double r35452 = r35426 * r35426;
        double r35453 = r35427 * r35427;
        double r35454 = r35426 * r35427;
        double r35455 = r35453 - r35454;
        double r35456 = r35452 + r35455;
        double r35457 = log(r35456);
        double r35458 = r35451 - r35457;
        double r35459 = r35458 - r35430;
        double r35460 = r35433 ? r35446 : r35459;
        return r35460;
}

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 (- (log (+ N 1.0)) (log N)) < 5.104748765916156e-07

    1. Initial program 59.9

      \[\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} \cdot \left(\frac{0.3333333333333333148296162562473909929395}{{N}^{2}} + \left(1 - \frac{0.5}{N}\right)\right)}\]
    4. Using strategy rm
    5. Applied flip-+0.0

      \[\leadsto \frac{1}{N} \cdot \color{blue}{\frac{\frac{0.3333333333333333148296162562473909929395}{{N}^{2}} \cdot \frac{0.3333333333333333148296162562473909929395}{{N}^{2}} - \left(1 - \frac{0.5}{N}\right) \cdot \left(1 - \frac{0.5}{N}\right)}{\frac{0.3333333333333333148296162562473909929395}{{N}^{2}} - \left(1 - \frac{0.5}{N}\right)}}\]
    6. Applied associate-*r/0.0

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

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

    if 5.104748765916156e-07 < (- (log (+ N 1.0)) (log N))

    1. Initial program 0.3

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

      \[\leadsto \log \color{blue}{\left(\frac{{N}^{3} + {1}^{3}}{N \cdot N + \left(1 \cdot 1 - N \cdot 1\right)}\right)} - \log N\]
    4. Applied log-div0.3

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

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

Reproduce

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