\frac{-\left(f + n\right)}{f - n}\mathsf{log1p}\left(\mathsf{expm1}\left(\frac{-1}{f - n} \cdot \left(f + n\right)\right)\right)double f(double f, double n) {
double r14170 = f;
double r14171 = n;
double r14172 = r14170 + r14171;
double r14173 = -r14172;
double r14174 = r14170 - r14171;
double r14175 = r14173 / r14174;
return r14175;
}
double f(double f, double n) {
double r14176 = -1.0;
double r14177 = f;
double r14178 = n;
double r14179 = r14177 - r14178;
double r14180 = r14176 / r14179;
double r14181 = r14177 + r14178;
double r14182 = r14180 * r14181;
double r14183 = expm1(r14182);
double r14184 = log1p(r14183);
return r14184;
}



Bits error versus f



Bits error versus n
Results
Initial program 0.0
rmApplied log1p-expm1-u0.0
rmApplied flip--31.1
Applied associate-/r/31.2
Simplified0.1
Final simplification0.1
herbie shell --seed 2019353 +o rules:numerics
(FPCore (f n)
:name "subtraction fraction"
:precision binary64
(/ (- (+ f n)) (- f n)))