double f(double f, double n) {
double r516899 = f;
double r516900 = n;
double r516901 = r516899 + r516900;
double r516902 = -r516901;
double r516903 = r516899 - r516900;
double r516904 = r516902 / r516903;
return r516904;
}
double f(double f, double n) {
double r516905 = n;
double r516906 = f;
double r516907 = r516905 + r516906;
double r516908 = -r516907;
double r516909 = r516906 - r516905;
double r516910 = r516908 / r516909;
double r516911 = expm1(r516910);
double r516912 = log1p(r516911);
return r516912;
}
\frac{-\left(f + n\right)}{f - n}\log_* (1 + (e^{\frac{-\left(n + f\right)}{f - n}} - 1)^*)


Bits error versus f



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