Average Error: 29.7 → 0.1
Time: 22.3s
Precision: 64
\[\log \left(N + 1\right) - \log N\]
\[\begin{array}{l} \mathbf{if}\;N \le 4627.67004360751616:\\ \;\;\;\;\sqrt[3]{{\left(\log \left(N + 1\right)\right)}^{3}} - \log N\\ \mathbf{else}:\\ \;\;\;\;\frac{0.333333333333333315}{{N}^{3}} + \left(\frac{1}{N} - \frac{0.5}{N \cdot N}\right)\\ \end{array}\]
\log \left(N + 1\right) - \log N
\begin{array}{l}
\mathbf{if}\;N \le 4627.67004360751616:\\
\;\;\;\;\sqrt[3]{{\left(\log \left(N + 1\right)\right)}^{3}} - \log N\\

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

\end{array}
double f(double N) {
        double r42335 = N;
        double r42336 = 1.0;
        double r42337 = r42335 + r42336;
        double r42338 = log(r42337);
        double r42339 = log(r42335);
        double r42340 = r42338 - r42339;
        return r42340;
}

double f(double N) {
        double r42341 = N;
        double r42342 = 4627.670043607516;
        bool r42343 = r42341 <= r42342;
        double r42344 = 1.0;
        double r42345 = r42341 + r42344;
        double r42346 = log(r42345);
        double r42347 = 3.0;
        double r42348 = pow(r42346, r42347);
        double r42349 = cbrt(r42348);
        double r42350 = log(r42341);
        double r42351 = r42349 - r42350;
        double r42352 = 0.3333333333333333;
        double r42353 = pow(r42341, r42347);
        double r42354 = r42352 / r42353;
        double r42355 = r42344 / r42341;
        double r42356 = 0.5;
        double r42357 = r42341 * r42341;
        double r42358 = r42356 / r42357;
        double r42359 = r42355 - r42358;
        double r42360 = r42354 + r42359;
        double r42361 = r42343 ? r42351 : r42360;
        return r42361;
}

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

    1. Initial program 0.1

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

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

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

    if 4627.670043607516 < 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.333333333333333315 \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{0.333333333333333315}{{N}^{3}} + \left(\frac{1}{N} - \frac{0.5}{N \cdot N}\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification0.1

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

Reproduce

herbie shell --seed 2019199 +o rules:numerics
(FPCore (N)
  :name "2log (problem 3.3.6)"
  (- (log (+ N 1.0)) (log N)))