\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -14393.03598665572280879132449626922607422:\\
\;\;\;\;\left(-\frac{3}{\left(x \cdot x\right) \cdot x}\right) - \left(\frac{3}{x} + \frac{\frac{1}{x}}{x}\right)\\
\mathbf{elif}\;x \le 10331.68170507998729590326547622680664062:\\
\;\;\;\;x \cdot \frac{1}{x + 1} - \frac{x + 1}{x - 1}\\
\mathbf{else}:\\
\;\;\;\;\left(-\frac{3}{\left(x \cdot x\right) \cdot x}\right) - \left(\frac{3}{x} + \frac{\frac{1}{x}}{x}\right)\\
\end{array}double f(double x) {
double r4530733 = x;
double r4530734 = 1.0;
double r4530735 = r4530733 + r4530734;
double r4530736 = r4530733 / r4530735;
double r4530737 = r4530733 - r4530734;
double r4530738 = r4530735 / r4530737;
double r4530739 = r4530736 - r4530738;
return r4530739;
}
double f(double x) {
double r4530740 = x;
double r4530741 = -14393.035986655723;
bool r4530742 = r4530740 <= r4530741;
double r4530743 = 3.0;
double r4530744 = r4530740 * r4530740;
double r4530745 = r4530744 * r4530740;
double r4530746 = r4530743 / r4530745;
double r4530747 = -r4530746;
double r4530748 = r4530743 / r4530740;
double r4530749 = 1.0;
double r4530750 = r4530749 / r4530740;
double r4530751 = r4530750 / r4530740;
double r4530752 = r4530748 + r4530751;
double r4530753 = r4530747 - r4530752;
double r4530754 = 10331.681705079987;
bool r4530755 = r4530740 <= r4530754;
double r4530756 = 1.0;
double r4530757 = r4530740 + r4530749;
double r4530758 = r4530756 / r4530757;
double r4530759 = r4530740 * r4530758;
double r4530760 = r4530740 - r4530749;
double r4530761 = r4530757 / r4530760;
double r4530762 = r4530759 - r4530761;
double r4530763 = r4530755 ? r4530762 : r4530753;
double r4530764 = r4530742 ? r4530753 : r4530763;
return r4530764;
}



Bits error versus x
Results
if x < -14393.035986655723 or 10331.681705079987 < x Initial program 59.4
Taylor expanded around inf 0.3
Simplified0.0
if -14393.035986655723 < x < 10331.681705079987Initial program 0.1
rmApplied div-inv0.1
Final simplification0.1
herbie shell --seed 2019192
(FPCore (x)
:name "Asymptote C"
(- (/ x (+ x 1.0)) (/ (+ x 1.0) (- x 1.0))))