\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -11515.964231250555:\\
\;\;\;\;\frac{-3}{\left(x \cdot x\right) \cdot x} + \left(\frac{-1}{x \cdot x} + \frac{-3}{x}\right)\\
\mathbf{elif}\;x \le 12225.500062890518:\\
\;\;\;\;\frac{x}{1 + x} - \frac{1}{\frac{x - 1}{1 + x}}\\
\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 r2264652 = x;
double r2264653 = 1.0;
double r2264654 = r2264652 + r2264653;
double r2264655 = r2264652 / r2264654;
double r2264656 = r2264652 - r2264653;
double r2264657 = r2264654 / r2264656;
double r2264658 = r2264655 - r2264657;
return r2264658;
}
double f(double x) {
double r2264659 = x;
double r2264660 = -11515.964231250555;
bool r2264661 = r2264659 <= r2264660;
double r2264662 = -3.0;
double r2264663 = r2264659 * r2264659;
double r2264664 = r2264663 * r2264659;
double r2264665 = r2264662 / r2264664;
double r2264666 = -1.0;
double r2264667 = r2264666 / r2264663;
double r2264668 = r2264662 / r2264659;
double r2264669 = r2264667 + r2264668;
double r2264670 = r2264665 + r2264669;
double r2264671 = 12225.500062890518;
bool r2264672 = r2264659 <= r2264671;
double r2264673 = 1.0;
double r2264674 = r2264673 + r2264659;
double r2264675 = r2264659 / r2264674;
double r2264676 = r2264659 - r2264673;
double r2264677 = r2264676 / r2264674;
double r2264678 = r2264673 / r2264677;
double r2264679 = r2264675 - r2264678;
double r2264680 = r2264672 ? r2264679 : r2264670;
double r2264681 = r2264661 ? r2264670 : r2264680;
return r2264681;
}



Bits error versus x
Results
if x < -11515.964231250555 or 12225.500062890518 < x Initial program 59.2
Taylor expanded around inf 0.3
Simplified0.0
if -11515.964231250555 < x < 12225.500062890518Initial program 0.1
rmApplied clear-num0.1
Final simplification0.1
herbie shell --seed 2019155 +o rules:numerics
(FPCore (x)
:name "Asymptote C"
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))