\log \left(N + 1\right) - \log N
\begin{array}{l}
\mathbf{if}\;\log \left(N + 1\right) - \log N \le 1.113298076 \cdot 10^{-7}:\\
\;\;\;\;\frac{1}{{N}^{2}} \cdot \left(\frac{0.333333333333333315}{N} - 0.5\right) + \frac{1}{N}\\
\mathbf{else}:\\
\;\;\;\;\log \left(\frac{N + 1}{N}\right)\\
\end{array}double f(double N) {
double r62050 = N;
double r62051 = 1.0;
double r62052 = r62050 + r62051;
double r62053 = log(r62052);
double r62054 = log(r62050);
double r62055 = r62053 - r62054;
return r62055;
}
double f(double N) {
double r62056 = N;
double r62057 = 1.0;
double r62058 = r62056 + r62057;
double r62059 = log(r62058);
double r62060 = log(r62056);
double r62061 = r62059 - r62060;
double r62062 = 1.1132980759498423e-07;
bool r62063 = r62061 <= r62062;
double r62064 = 1.0;
double r62065 = 2.0;
double r62066 = pow(r62056, r62065);
double r62067 = r62064 / r62066;
double r62068 = 0.3333333333333333;
double r62069 = r62068 / r62056;
double r62070 = 0.5;
double r62071 = r62069 - r62070;
double r62072 = r62067 * r62071;
double r62073 = r62057 / r62056;
double r62074 = r62072 + r62073;
double r62075 = r62058 / r62056;
double r62076 = log(r62075);
double r62077 = r62063 ? r62074 : r62076;
return r62077;
}



Bits error versus N
Results
if (- (log (+ N 1.0)) (log N)) < 1.1132980759498423e-07Initial program 59.9
Taylor expanded around inf 0.0
Simplified0.0
if 1.1132980759498423e-07 < (- (log (+ N 1.0)) (log N)) Initial program 0.3
rmApplied diff-log0.2
Final simplification0.1
herbie shell --seed 2020036
(FPCore (N)
:name "2log (problem 3.3.6)"
:precision binary64
(- (log (+ N 1)) (log N)))