\log \left(N + 1\right) - \log N
\mathsf{log1p}\left(\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{1}{N}\right)\right)\right)double f(double N) {
double r36065 = N;
double r36066 = 1.0;
double r36067 = r36065 + r36066;
double r36068 = log(r36067);
double r36069 = log(r36065);
double r36070 = r36068 - r36069;
return r36070;
}
double f(double N) {
double r36071 = 1.0;
double r36072 = N;
double r36073 = r36071 / r36072;
double r36074 = log1p(r36073);
double r36075 = expm1(r36074);
double r36076 = log1p(r36075);
return r36076;
}



Bits error versus N
Results
Initial program 28.8
rmApplied diff-log28.7
rmApplied log1p-expm1-u28.7
Simplified0.0
Final simplification0.0
herbie shell --seed 2019350 +o rules:numerics
(FPCore (N)
:name "2log (problem 3.3.6)"
:precision binary64
(- (log (+ N 1)) (log N)))