\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -0.99782307839973639 \lor \neg \left(x \le 11941.1541135256684\right):\\
\;\;\;\;\left(\frac{-1}{{x}^{2}} - \frac{3}{x}\right) - \frac{3}{{x}^{3}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{\sqrt{x + 1}} \cdot \frac{\sqrt[3]{x}}{\sqrt{x + 1}} - \frac{x + 1}{x - 1}\\
\end{array}double f(double x) {
double r228767 = x;
double r228768 = 1.0;
double r228769 = r228767 + r228768;
double r228770 = r228767 / r228769;
double r228771 = r228767 - r228768;
double r228772 = r228769 / r228771;
double r228773 = r228770 - r228772;
return r228773;
}
double f(double x) {
double r228774 = x;
double r228775 = -0.9978230783997364;
bool r228776 = r228774 <= r228775;
double r228777 = 11941.154113525668;
bool r228778 = r228774 <= r228777;
double r228779 = !r228778;
bool r228780 = r228776 || r228779;
double r228781 = 1.0;
double r228782 = -r228781;
double r228783 = 2.0;
double r228784 = pow(r228774, r228783);
double r228785 = r228782 / r228784;
double r228786 = 3.0;
double r228787 = r228786 / r228774;
double r228788 = r228785 - r228787;
double r228789 = 3.0;
double r228790 = pow(r228774, r228789);
double r228791 = r228786 / r228790;
double r228792 = r228788 - r228791;
double r228793 = cbrt(r228774);
double r228794 = r228793 * r228793;
double r228795 = r228774 + r228781;
double r228796 = sqrt(r228795);
double r228797 = r228794 / r228796;
double r228798 = r228793 / r228796;
double r228799 = r228797 * r228798;
double r228800 = r228774 - r228781;
double r228801 = r228795 / r228800;
double r228802 = r228799 - r228801;
double r228803 = r228780 ? r228792 : r228802;
return r228803;
}



Bits error versus x
Results
if x < -0.9978230783997364 or 11941.154113525668 < x Initial program 58.9
Taylor expanded around inf 0.5
Simplified0.2
if -0.9978230783997364 < x < 11941.154113525668Initial program 0.1
rmApplied add-sqr-sqrt0.1
Applied add-cube-cbrt0.1
Applied times-frac0.1
Final simplification0.1
herbie shell --seed 2020024
(FPCore (x)
:name "Asymptote C"
:precision binary64
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))