\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -13216.2772295090999 \lor \neg \left(x \le 11343.191540615622\right):\\
\;\;\;\;\left(\frac{-1}{{x}^{2}} - \frac{3}{x}\right) - \frac{3}{{x}^{3}}\\
\mathbf{else}:\\
\;\;\;\;\frac{{\left(\frac{x}{x + 1}\right)}^{3} - {\left(\frac{\frac{1}{x - 1}}{\frac{1}{x + 1}}\right)}^{3}}{\frac{\frac{1}{x - 1}}{\frac{1}{x + 1}} \cdot \left(\frac{\frac{1}{x - 1}}{\frac{1}{x + 1}} + \frac{x}{x + 1}\right) + \left(\sqrt[3]{\frac{x}{x + 1} \cdot \frac{x}{x + 1}} \cdot \sqrt[3]{\frac{x}{x + 1} \cdot \frac{x}{x + 1}}\right) \cdot \sqrt[3]{\frac{x}{x + 1} \cdot \frac{x}{x + 1}}}\\
\end{array}double f(double x) {
double r131469 = x;
double r131470 = 1.0;
double r131471 = r131469 + r131470;
double r131472 = r131469 / r131471;
double r131473 = r131469 - r131470;
double r131474 = r131471 / r131473;
double r131475 = r131472 - r131474;
return r131475;
}
double f(double x) {
double r131476 = x;
double r131477 = -13216.2772295091;
bool r131478 = r131476 <= r131477;
double r131479 = 11343.191540615622;
bool r131480 = r131476 <= r131479;
double r131481 = !r131480;
bool r131482 = r131478 || r131481;
double r131483 = 1.0;
double r131484 = -r131483;
double r131485 = 2.0;
double r131486 = pow(r131476, r131485);
double r131487 = r131484 / r131486;
double r131488 = 3.0;
double r131489 = r131488 / r131476;
double r131490 = r131487 - r131489;
double r131491 = 3.0;
double r131492 = pow(r131476, r131491);
double r131493 = r131488 / r131492;
double r131494 = r131490 - r131493;
double r131495 = r131476 + r131483;
double r131496 = r131476 / r131495;
double r131497 = pow(r131496, r131491);
double r131498 = 1.0;
double r131499 = r131476 - r131483;
double r131500 = r131498 / r131499;
double r131501 = r131498 / r131495;
double r131502 = r131500 / r131501;
double r131503 = pow(r131502, r131491);
double r131504 = r131497 - r131503;
double r131505 = r131502 + r131496;
double r131506 = r131502 * r131505;
double r131507 = r131496 * r131496;
double r131508 = cbrt(r131507);
double r131509 = r131508 * r131508;
double r131510 = r131509 * r131508;
double r131511 = r131506 + r131510;
double r131512 = r131504 / r131511;
double r131513 = r131482 ? r131494 : r131512;
return r131513;
}



Bits error versus x
Results
if x < -13216.2772295091 or 11343.191540615622 < x Initial program 59.2
Taylor expanded around inf 0.3
Simplified0.0
if -13216.2772295091 < x < 11343.191540615622Initial program 0.1
rmApplied clear-num0.1
rmApplied div-inv0.1
Applied associate-/r*0.1
rmApplied flip3--0.1
Simplified0.1
rmApplied add-cube-cbrt0.1
Final simplification0.1
herbie shell --seed 2020083
(FPCore (x)
:name "Asymptote C"
:precision binary64
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))