\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -12471.6665092964158 \lor \neg \left(x \le 20005.7029934287893\right):\\
\;\;\;\;\left(\frac{-1}{{x}^{2}} - \frac{3}{x}\right) - \frac{3}{{x}^{3}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{1}{\left(x + 1\right) \cdot \left(x + 1\right)} \cdot \frac{{x}^{3}}{x + 1} - {\left(\frac{x + 1}{x - 1}\right)}^{3}}{\frac{x + 1}{x - 1} \cdot \left(\frac{x + 1}{x - 1} + \frac{x}{x + 1}\right) + \frac{x}{x + 1} \cdot \frac{x}{x + 1}}\\
\end{array}double f(double x) {
double r156761 = x;
double r156762 = 1.0;
double r156763 = r156761 + r156762;
double r156764 = r156761 / r156763;
double r156765 = r156761 - r156762;
double r156766 = r156763 / r156765;
double r156767 = r156764 - r156766;
return r156767;
}
double f(double x) {
double r156768 = x;
double r156769 = -12471.666509296416;
bool r156770 = r156768 <= r156769;
double r156771 = 20005.70299342879;
bool r156772 = r156768 <= r156771;
double r156773 = !r156772;
bool r156774 = r156770 || r156773;
double r156775 = 1.0;
double r156776 = -r156775;
double r156777 = 2.0;
double r156778 = pow(r156768, r156777);
double r156779 = r156776 / r156778;
double r156780 = 3.0;
double r156781 = r156780 / r156768;
double r156782 = r156779 - r156781;
double r156783 = 3.0;
double r156784 = pow(r156768, r156783);
double r156785 = r156780 / r156784;
double r156786 = r156782 - r156785;
double r156787 = 1.0;
double r156788 = r156768 + r156775;
double r156789 = r156788 * r156788;
double r156790 = r156787 / r156789;
double r156791 = r156784 / r156788;
double r156792 = r156790 * r156791;
double r156793 = r156768 - r156775;
double r156794 = r156788 / r156793;
double r156795 = pow(r156794, r156783);
double r156796 = r156792 - r156795;
double r156797 = r156768 / r156788;
double r156798 = r156794 + r156797;
double r156799 = r156794 * r156798;
double r156800 = r156797 * r156797;
double r156801 = r156799 + r156800;
double r156802 = r156796 / r156801;
double r156803 = r156774 ? r156786 : r156802;
return r156803;
}



Bits error versus x
Results
if x < -12471.666509296416 or 20005.70299342879 < x Initial program 59.2
Taylor expanded around inf 0.3
Simplified0.0
if -12471.666509296416 < x < 20005.70299342879Initial program 0.1
rmApplied flip3--0.1
Simplified0.1
rmApplied add-cube-cbrt0.1
Applied *-un-lft-identity0.1
Applied times-frac0.1
Applied unpow-prod-down0.1
Simplified0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2020057
(FPCore (x)
:name "Asymptote C"
:precision binary64
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))