\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -13754.17570154071472643408924341201782227 \lor \neg \left(x \le 11917.97074271185010729823261499404907227\right):\\
\;\;\;\;-\left(\left(\frac{1}{x \cdot x} + \frac{3}{x}\right) + \frac{3}{{x}^{3}}\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(x, \frac{1}{x + 1}, -\frac{x + 1}{x - 1}\right)\\
\end{array}double f(double x) {
double r88868 = x;
double r88869 = 1.0;
double r88870 = r88868 + r88869;
double r88871 = r88868 / r88870;
double r88872 = r88868 - r88869;
double r88873 = r88870 / r88872;
double r88874 = r88871 - r88873;
return r88874;
}
double f(double x) {
double r88875 = x;
double r88876 = -13754.175701540715;
bool r88877 = r88875 <= r88876;
double r88878 = 11917.97074271185;
bool r88879 = r88875 <= r88878;
double r88880 = !r88879;
bool r88881 = r88877 || r88880;
double r88882 = 1.0;
double r88883 = r88875 * r88875;
double r88884 = r88882 / r88883;
double r88885 = 3.0;
double r88886 = r88885 / r88875;
double r88887 = r88884 + r88886;
double r88888 = 3.0;
double r88889 = pow(r88875, r88888);
double r88890 = r88885 / r88889;
double r88891 = r88887 + r88890;
double r88892 = -r88891;
double r88893 = 1.0;
double r88894 = r88875 + r88882;
double r88895 = r88893 / r88894;
double r88896 = r88875 - r88882;
double r88897 = r88894 / r88896;
double r88898 = -r88897;
double r88899 = fma(r88875, r88895, r88898);
double r88900 = r88881 ? r88892 : r88899;
return r88900;
}



Bits error versus x
if x < -13754.175701540715 or 11917.97074271185 < x Initial program 59.3
Taylor expanded around inf 0.3
Simplified0.0
if -13754.175701540715 < x < 11917.97074271185Initial program 0.1
rmApplied div-inv0.1
Applied fma-neg0.1
Final simplification0.1
herbie shell --seed 2019325 +o rules:numerics
(FPCore (x)
:name "Asymptote C"
:precision binary64
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))