\frac{-\left(f + n\right)}{f - n}\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{-\left(f + n\right)}{f - n}\right)\right)double f(double f, double n) {
double r15787 = f;
double r15788 = n;
double r15789 = r15787 + r15788;
double r15790 = -r15789;
double r15791 = r15787 - r15788;
double r15792 = r15790 / r15791;
return r15792;
}
double f(double f, double n) {
double r15793 = f;
double r15794 = n;
double r15795 = r15793 + r15794;
double r15796 = -r15795;
double r15797 = r15793 - r15794;
double r15798 = r15796 / r15797;
double r15799 = log1p(r15798);
double r15800 = expm1(r15799);
return r15800;
}



Bits error versus f



Bits error versus n
Results
Initial program 0.0
rmApplied expm1-log1p-u0.8
Final simplification0.8
herbie shell --seed 2020081 +o rules:numerics
(FPCore (f n)
:name "subtraction fraction"
:precision binary64
(/ (- (+ f n)) (- f n)))