\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -11192.06208307448832783848047256469726562 \lor \neg \left(x \le 6174.270166505639281240291893482208251953\right):\\
\;\;\;\;\frac{-1}{x \cdot x} - \left(\frac{3}{x} + \frac{3}{{x}^{3}}\right)\\
\mathbf{else}:\\
\;\;\;\;\left(x \cdot \frac{1}{x + 1} - \frac{\frac{x + 1}{\sqrt[3]{x - 1} \cdot \sqrt[3]{x - 1}}}{\sqrt[3]{x - 1}}\right) + \frac{1}{\sqrt[3]{x - 1} \cdot \sqrt[3]{x - 1}} \cdot \left(\left(-\frac{x + 1}{\sqrt[3]{x - 1}}\right) + \frac{x + 1}{\sqrt[3]{x - 1}}\right)\\
\end{array}double f(double x) {
double r96482 = x;
double r96483 = 1.0;
double r96484 = r96482 + r96483;
double r96485 = r96482 / r96484;
double r96486 = r96482 - r96483;
double r96487 = r96484 / r96486;
double r96488 = r96485 - r96487;
return r96488;
}
double f(double x) {
double r96489 = x;
double r96490 = -11192.062083074488;
bool r96491 = r96489 <= r96490;
double r96492 = 6174.270166505639;
bool r96493 = r96489 <= r96492;
double r96494 = !r96493;
bool r96495 = r96491 || r96494;
double r96496 = 1.0;
double r96497 = -r96496;
double r96498 = r96489 * r96489;
double r96499 = r96497 / r96498;
double r96500 = 3.0;
double r96501 = r96500 / r96489;
double r96502 = 3.0;
double r96503 = pow(r96489, r96502);
double r96504 = r96500 / r96503;
double r96505 = r96501 + r96504;
double r96506 = r96499 - r96505;
double r96507 = 1.0;
double r96508 = r96489 + r96496;
double r96509 = r96507 / r96508;
double r96510 = r96489 * r96509;
double r96511 = r96489 - r96496;
double r96512 = cbrt(r96511);
double r96513 = r96512 * r96512;
double r96514 = r96508 / r96513;
double r96515 = r96514 / r96512;
double r96516 = r96510 - r96515;
double r96517 = r96507 / r96513;
double r96518 = r96508 / r96512;
double r96519 = -r96518;
double r96520 = r96519 + r96518;
double r96521 = r96517 * r96520;
double r96522 = r96516 + r96521;
double r96523 = r96495 ? r96506 : r96522;
return r96523;
}



Bits error versus x
Results
if x < -11192.062083074488 or 6174.270166505639 < x Initial program 59.4
Taylor expanded around inf 0.3
Simplified0.0
if -11192.062083074488 < x < 6174.270166505639Initial program 0.1
rmApplied add-cube-cbrt0.1
Applied *-un-lft-identity0.1
Applied times-frac0.1
Applied div-inv0.1
Applied prod-diff0.1
Simplified0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019208 +o rules:numerics
(FPCore (x)
:name "Asymptote C"
:precision binary64
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))