\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -11361.07922411017534614074975252151489258 \lor \neg \left(x \le 10814.79793970629907562397420406341552734\right):\\
\;\;\;\;-\left(\left(\frac{1}{x \cdot x} + \frac{3}{x}\right) + \frac{3}{{x}^{3}}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{1 + x} - \sqrt[3]{{\left(\frac{1}{x - 1}\right)}^{3}} \cdot \left(1 + x\right)\\
\end{array}double f(double x) {
double r73869 = x;
double r73870 = 1.0;
double r73871 = r73869 + r73870;
double r73872 = r73869 / r73871;
double r73873 = r73869 - r73870;
double r73874 = r73871 / r73873;
double r73875 = r73872 - r73874;
return r73875;
}
double f(double x) {
double r73876 = x;
double r73877 = -11361.079224110175;
bool r73878 = r73876 <= r73877;
double r73879 = 10814.797939706299;
bool r73880 = r73876 <= r73879;
double r73881 = !r73880;
bool r73882 = r73878 || r73881;
double r73883 = 1.0;
double r73884 = r73876 * r73876;
double r73885 = r73883 / r73884;
double r73886 = 3.0;
double r73887 = r73886 / r73876;
double r73888 = r73885 + r73887;
double r73889 = 3.0;
double r73890 = pow(r73876, r73889);
double r73891 = r73886 / r73890;
double r73892 = r73888 + r73891;
double r73893 = -r73892;
double r73894 = r73883 + r73876;
double r73895 = r73876 / r73894;
double r73896 = 1.0;
double r73897 = r73876 - r73883;
double r73898 = r73896 / r73897;
double r73899 = pow(r73898, r73889);
double r73900 = cbrt(r73899);
double r73901 = r73900 * r73894;
double r73902 = r73895 - r73901;
double r73903 = r73882 ? r73893 : r73902;
return r73903;
}



Bits error versus x
Results
if x < -11361.079224110175 or 10814.797939706299 < x Initial program 59.4
rmApplied div-inv59.6
rmApplied add-cbrt-cube60.6
Simplified60.6
Taylor expanded around inf 0.3
Simplified0.0
if -11361.079224110175 < x < 10814.797939706299Initial program 0.1
rmApplied div-inv0.1
rmApplied add-cbrt-cube0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019196
(FPCore (x)
:name "Asymptote C"
(- (/ x (+ x 1.0)) (/ (+ x 1.0) (- x 1.0))))