\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -12747.1166037794264 \lor \neg \left(x \le 9605.38665600455897\right):\\
\;\;\;\;\left(-\left(\frac{1}{{x}^{2}} + \frac{3}{x}\right)\right) - \frac{1}{{x}^{3}} \cdot 3\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{x + 1} - \sqrt[3]{{\left(\frac{x + 1}{x - 1}\right)}^{3}}\\
\end{array}double f(double x) {
double r142138 = x;
double r142139 = 1.0;
double r142140 = r142138 + r142139;
double r142141 = r142138 / r142140;
double r142142 = r142138 - r142139;
double r142143 = r142140 / r142142;
double r142144 = r142141 - r142143;
return r142144;
}
double f(double x) {
double r142145 = x;
double r142146 = -12747.116603779426;
bool r142147 = r142145 <= r142146;
double r142148 = 9605.386656004559;
bool r142149 = r142145 <= r142148;
double r142150 = !r142149;
bool r142151 = r142147 || r142150;
double r142152 = 1.0;
double r142153 = 2.0;
double r142154 = pow(r142145, r142153);
double r142155 = r142152 / r142154;
double r142156 = 3.0;
double r142157 = r142156 / r142145;
double r142158 = r142155 + r142157;
double r142159 = -r142158;
double r142160 = 1.0;
double r142161 = 3.0;
double r142162 = pow(r142145, r142161);
double r142163 = r142160 / r142162;
double r142164 = r142163 * r142156;
double r142165 = r142159 - r142164;
double r142166 = r142145 + r142152;
double r142167 = r142145 / r142166;
double r142168 = r142145 - r142152;
double r142169 = r142166 / r142168;
double r142170 = pow(r142169, r142161);
double r142171 = cbrt(r142170);
double r142172 = r142167 - r142171;
double r142173 = r142151 ? r142165 : r142172;
return r142173;
}



Bits error versus x
Results
if x < -12747.116603779426 or 9605.386656004559 < 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 -12747.116603779426 < x < 9605.386656004559Initial program 0.1
rmApplied add-cbrt-cube0.1
Applied add-cbrt-cube0.1
Applied cbrt-undiv0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2020025
(FPCore (x)
:name "Asymptote C"
:precision binary64
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))