\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -7452.829832440166683227289468050003051758 \lor \neg \left(x \le 8087.115897509891510708257555961608886719\right):\\
\;\;\;\;\left(-\left(\frac{1}{{x}^{2}} + \frac{3}{x}\right)\right) - \frac{1}{{x}^{3}} \cdot 3\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{x + 1} - \left(\sqrt[3]{\frac{x + 1}{x - 1}} \cdot \sqrt[3]{\frac{x + 1}{x - 1}}\right) \cdot \sqrt[3]{\frac{x + 1}{x - 1}}\\
\end{array}double f(double x) {
double r87068 = x;
double r87069 = 1.0;
double r87070 = r87068 + r87069;
double r87071 = r87068 / r87070;
double r87072 = r87068 - r87069;
double r87073 = r87070 / r87072;
double r87074 = r87071 - r87073;
return r87074;
}
double f(double x) {
double r87075 = x;
double r87076 = -7452.829832440167;
bool r87077 = r87075 <= r87076;
double r87078 = 8087.1158975098915;
bool r87079 = r87075 <= r87078;
double r87080 = !r87079;
bool r87081 = r87077 || r87080;
double r87082 = 1.0;
double r87083 = 2.0;
double r87084 = pow(r87075, r87083);
double r87085 = r87082 / r87084;
double r87086 = 3.0;
double r87087 = r87086 / r87075;
double r87088 = r87085 + r87087;
double r87089 = -r87088;
double r87090 = 1.0;
double r87091 = 3.0;
double r87092 = pow(r87075, r87091);
double r87093 = r87090 / r87092;
double r87094 = r87093 * r87086;
double r87095 = r87089 - r87094;
double r87096 = r87075 + r87082;
double r87097 = r87075 / r87096;
double r87098 = r87075 - r87082;
double r87099 = r87096 / r87098;
double r87100 = cbrt(r87099);
double r87101 = r87100 * r87100;
double r87102 = r87101 * r87100;
double r87103 = r87097 - r87102;
double r87104 = r87081 ? r87095 : r87103;
return r87104;
}



Bits error versus x
Results
if x < -7452.829832440167 or 8087.1158975098915 < x Initial program 59.1
Taylor expanded around inf 0.3
Simplified0.3
rmApplied distribute-rgt-in0.3
Applied associate--r+0.3
Simplified0.0
if -7452.829832440167 < x < 8087.1158975098915Initial program 0.1
rmApplied add-cube-cbrt0.1
Final simplification0.1
herbie shell --seed 2019298
(FPCore (x)
:name "Asymptote C"
:precision binary64
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))