\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -11444.73524238953541498631238937377929688:\\
\;\;\;\;\frac{-3}{\left(x \cdot x\right) \cdot x} - \left(\frac{1}{x \cdot x} + \frac{3}{x}\right)\\
\mathbf{elif}\;x \le 13113.52674068516171246301382780075073242:\\
\;\;\;\;x \cdot \frac{1}{x + 1} - \frac{x + 1}{x - 1}\\
\mathbf{else}:\\
\;\;\;\;\frac{-3}{\left(x \cdot x\right) \cdot x} - \left(\frac{1}{x \cdot x} + \frac{3}{x}\right)\\
\end{array}double f(double x) {
double r4942817 = x;
double r4942818 = 1.0;
double r4942819 = r4942817 + r4942818;
double r4942820 = r4942817 / r4942819;
double r4942821 = r4942817 - r4942818;
double r4942822 = r4942819 / r4942821;
double r4942823 = r4942820 - r4942822;
return r4942823;
}
double f(double x) {
double r4942824 = x;
double r4942825 = -11444.735242389535;
bool r4942826 = r4942824 <= r4942825;
double r4942827 = 3.0;
double r4942828 = -r4942827;
double r4942829 = r4942824 * r4942824;
double r4942830 = r4942829 * r4942824;
double r4942831 = r4942828 / r4942830;
double r4942832 = 1.0;
double r4942833 = r4942832 / r4942829;
double r4942834 = r4942827 / r4942824;
double r4942835 = r4942833 + r4942834;
double r4942836 = r4942831 - r4942835;
double r4942837 = 13113.526740685162;
bool r4942838 = r4942824 <= r4942837;
double r4942839 = 1.0;
double r4942840 = r4942824 + r4942832;
double r4942841 = r4942839 / r4942840;
double r4942842 = r4942824 * r4942841;
double r4942843 = r4942824 - r4942832;
double r4942844 = r4942840 / r4942843;
double r4942845 = r4942842 - r4942844;
double r4942846 = r4942838 ? r4942845 : r4942836;
double r4942847 = r4942826 ? r4942836 : r4942846;
return r4942847;
}



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