\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -13167.552073147652:\\
\;\;\;\;\left(\frac{-3}{x} + \frac{-1}{x \cdot x}\right) + \frac{-3}{\left(x \cdot x\right) \cdot x}\\
\mathbf{elif}\;x \le 12311.34325898398:\\
\;\;\;\;\mathsf{fma}\left(\frac{-1}{x - 1}, 1 + x, \left(1 + x\right) \cdot \frac{1}{x - 1}\right) + \mathsf{fma}\left(x, \frac{1}{1 + x}, \frac{-\mathsf{fma}\left(x, x, -1\right)}{\left(x - 1\right) \cdot \left(x - 1\right)}\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{-3}{x} + \frac{-1}{x \cdot x}\right) + \frac{-3}{\left(x \cdot x\right) \cdot x}\\
\end{array}double f(double x) {
double r2072978 = x;
double r2072979 = 1.0;
double r2072980 = r2072978 + r2072979;
double r2072981 = r2072978 / r2072980;
double r2072982 = r2072978 - r2072979;
double r2072983 = r2072980 / r2072982;
double r2072984 = r2072981 - r2072983;
return r2072984;
}
double f(double x) {
double r2072985 = x;
double r2072986 = -13167.552073147652;
bool r2072987 = r2072985 <= r2072986;
double r2072988 = -3.0;
double r2072989 = r2072988 / r2072985;
double r2072990 = -1.0;
double r2072991 = r2072985 * r2072985;
double r2072992 = r2072990 / r2072991;
double r2072993 = r2072989 + r2072992;
double r2072994 = r2072991 * r2072985;
double r2072995 = r2072988 / r2072994;
double r2072996 = r2072993 + r2072995;
double r2072997 = 12311.34325898398;
bool r2072998 = r2072985 <= r2072997;
double r2072999 = 1.0;
double r2073000 = r2072985 - r2072999;
double r2073001 = r2072990 / r2073000;
double r2073002 = r2072999 + r2072985;
double r2073003 = r2072999 / r2073000;
double r2073004 = r2073002 * r2073003;
double r2073005 = fma(r2073001, r2073002, r2073004);
double r2073006 = r2072999 / r2073002;
double r2073007 = fma(r2072985, r2072985, r2072990);
double r2073008 = -r2073007;
double r2073009 = r2073000 * r2073000;
double r2073010 = r2073008 / r2073009;
double r2073011 = fma(r2072985, r2073006, r2073010);
double r2073012 = r2073005 + r2073011;
double r2073013 = r2072998 ? r2073012 : r2072996;
double r2073014 = r2072987 ? r2072996 : r2073013;
return r2073014;
}



Bits error versus x
if x < -13167.552073147652 or 12311.34325898398 < x Initial program 59.1
Taylor expanded around -inf 0.4
Simplified0.0
if -13167.552073147652 < x < 12311.34325898398Initial program 0.1
rmApplied div-inv0.1
Applied div-inv0.1
Applied prod-diff0.1
rmApplied flip-+0.1
Applied frac-times0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019151 +o rules:numerics
(FPCore (x)
:name "Asymptote C"
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))