\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -6263.833804380613:\\
\;\;\;\;\left(\frac{-3}{x} + \frac{-1}{x \cdot x}\right) + \frac{-3}{\left(x \cdot x\right) \cdot x}\\
\mathbf{elif}\;x \le 7862.0498067640765:\\
\;\;\;\;\mathsf{fma}\left(-\left(x \cdot x + \left(x + 1\right)\right), \frac{1 + x}{{x}^{3} - 1}, \frac{1 + x}{{x}^{3} - 1} \cdot \left(x \cdot x + \left(x + 1\right)\right)\right) + \mathsf{fma}\left(\sqrt[3]{\frac{x}{1 + x}} \cdot \sqrt[3]{\frac{x}{1 + x}}, \sqrt[3]{\frac{x}{1 + x}}, \frac{1 + x}{{x}^{3} - 1} \cdot \left(-\left(x \cdot x + \left(x + 1\right)\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{-3}{x} + \frac{-1}{x \cdot x}\right) + \frac{-3}{\left(x \cdot x\right) \cdot x}\\
\end{array}double f(double x) {
double r2330345 = x;
double r2330346 = 1.0;
double r2330347 = r2330345 + r2330346;
double r2330348 = r2330345 / r2330347;
double r2330349 = r2330345 - r2330346;
double r2330350 = r2330347 / r2330349;
double r2330351 = r2330348 - r2330350;
return r2330351;
}
double f(double x) {
double r2330352 = x;
double r2330353 = -6263.833804380613;
bool r2330354 = r2330352 <= r2330353;
double r2330355 = -3.0;
double r2330356 = r2330355 / r2330352;
double r2330357 = -1.0;
double r2330358 = r2330352 * r2330352;
double r2330359 = r2330357 / r2330358;
double r2330360 = r2330356 + r2330359;
double r2330361 = r2330358 * r2330352;
double r2330362 = r2330355 / r2330361;
double r2330363 = r2330360 + r2330362;
double r2330364 = 7862.0498067640765;
bool r2330365 = r2330352 <= r2330364;
double r2330366 = 1.0;
double r2330367 = r2330352 + r2330366;
double r2330368 = r2330358 + r2330367;
double r2330369 = -r2330368;
double r2330370 = r2330366 + r2330352;
double r2330371 = 3.0;
double r2330372 = pow(r2330352, r2330371);
double r2330373 = r2330372 - r2330366;
double r2330374 = r2330370 / r2330373;
double r2330375 = r2330374 * r2330368;
double r2330376 = fma(r2330369, r2330374, r2330375);
double r2330377 = r2330352 / r2330370;
double r2330378 = cbrt(r2330377);
double r2330379 = r2330378 * r2330378;
double r2330380 = r2330374 * r2330369;
double r2330381 = fma(r2330379, r2330378, r2330380);
double r2330382 = r2330376 + r2330381;
double r2330383 = r2330365 ? r2330382 : r2330363;
double r2330384 = r2330354 ? r2330363 : r2330383;
return r2330384;
}



Bits error versus x
if x < -6263.833804380613 or 7862.0498067640765 < x Initial program 59.3
Taylor expanded around inf 0.3
Simplified0.0
if -6263.833804380613 < x < 7862.0498067640765Initial program 0.1
rmApplied flip3--0.1
Applied associate-/r/0.1
Applied add-cube-cbrt0.1
Applied prod-diff0.1
Final simplification0.1
herbie shell --seed 2019153 +o rules:numerics
(FPCore (x)
:name "Asymptote C"
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))