\log \left(N + 1\right) - \log N
\begin{array}{l}
\mathbf{if}\;N \le 7072.329313818584:\\
\;\;\;\;\log \left(\sqrt{\frac{1 + N}{N}}\right) + \log \left(\sqrt{\frac{1 + N}{N}}\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{1}{N} + \frac{\frac{-1}{2}}{N \cdot N}\right) - \frac{\frac{-1}{3}}{N \cdot \left(N \cdot N\right)}\\
\end{array}double f(double N) {
double r2836586 = N;
double r2836587 = 1.0;
double r2836588 = r2836586 + r2836587;
double r2836589 = log(r2836588);
double r2836590 = log(r2836586);
double r2836591 = r2836589 - r2836590;
return r2836591;
}
double f(double N) {
double r2836592 = N;
double r2836593 = 7072.329313818584;
bool r2836594 = r2836592 <= r2836593;
double r2836595 = 1.0;
double r2836596 = r2836595 + r2836592;
double r2836597 = r2836596 / r2836592;
double r2836598 = sqrt(r2836597);
double r2836599 = log(r2836598);
double r2836600 = r2836599 + r2836599;
double r2836601 = r2836595 / r2836592;
double r2836602 = -0.5;
double r2836603 = r2836592 * r2836592;
double r2836604 = r2836602 / r2836603;
double r2836605 = r2836601 + r2836604;
double r2836606 = -0.3333333333333333;
double r2836607 = r2836592 * r2836603;
double r2836608 = r2836606 / r2836607;
double r2836609 = r2836605 - r2836608;
double r2836610 = r2836594 ? r2836600 : r2836609;
return r2836610;
}



Bits error versus N
Results
if N < 7072.329313818584Initial program 0.1
Simplified0.1
rmApplied log1p-udef0.1
Applied diff-log0.1
rmApplied add-sqr-sqrt0.1
Applied log-prod0.1
if 7072.329313818584 < N Initial program 59.6
Simplified59.6
rmApplied log1p-udef59.6
Applied diff-log59.3
rmApplied add-exp-log60.5
Applied add-exp-log59.6
Applied div-exp59.6
Applied rem-log-exp59.6
Simplified59.6
Taylor expanded around inf 0.0
Simplified0.0
Final simplification0.1
herbie shell --seed 2019107 +o rules:numerics
(FPCore (N)
:name "2log (problem 3.3.6)"
(- (log (+ N 1)) (log N)))