\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -14987.58593525831747683696448802947998047:\\
\;\;\;\;\left(\frac{-1}{x \cdot x} - \frac{3}{\left(x \cdot x\right) \cdot x}\right) - \frac{3}{x}\\
\mathbf{elif}\;x \le 13279.35072476002096664160490036010742188:\\
\;\;\;\;\frac{\left(x - 1\right) \cdot x - \left(1 + x\right) \cdot \left(1 + x\right)}{\left(1 + x\right) \cdot \left(x - 1\right)}\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{-1}{x \cdot x} - \frac{3}{\left(x \cdot x\right) \cdot x}\right) - \frac{3}{x}\\
\end{array}double f(double x) {
double r3861699 = x;
double r3861700 = 1.0;
double r3861701 = r3861699 + r3861700;
double r3861702 = r3861699 / r3861701;
double r3861703 = r3861699 - r3861700;
double r3861704 = r3861701 / r3861703;
double r3861705 = r3861702 - r3861704;
return r3861705;
}
double f(double x) {
double r3861706 = x;
double r3861707 = -14987.585935258317;
bool r3861708 = r3861706 <= r3861707;
double r3861709 = 1.0;
double r3861710 = -r3861709;
double r3861711 = r3861706 * r3861706;
double r3861712 = r3861710 / r3861711;
double r3861713 = 3.0;
double r3861714 = r3861711 * r3861706;
double r3861715 = r3861713 / r3861714;
double r3861716 = r3861712 - r3861715;
double r3861717 = r3861713 / r3861706;
double r3861718 = r3861716 - r3861717;
double r3861719 = 13279.350724760021;
bool r3861720 = r3861706 <= r3861719;
double r3861721 = r3861706 - r3861709;
double r3861722 = r3861721 * r3861706;
double r3861723 = r3861709 + r3861706;
double r3861724 = r3861723 * r3861723;
double r3861725 = r3861722 - r3861724;
double r3861726 = r3861723 * r3861721;
double r3861727 = r3861725 / r3861726;
double r3861728 = r3861720 ? r3861727 : r3861718;
double r3861729 = r3861708 ? r3861718 : r3861728;
return r3861729;
}



Bits error versus x
Results
if x < -14987.585935258317 or 13279.350724760021 < x Initial program 59.3
Taylor expanded around inf 0.3
Simplified0.0
if -14987.585935258317 < x < 13279.350724760021Initial program 0.1
rmApplied add-cube-cbrt0.1
rmApplied cbrt-div0.1
Applied cbrt-div0.1
Applied cbrt-div0.1
Applied frac-times0.1
Applied frac-times0.1
Applied frac-sub0.1
Simplified0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019200
(FPCore (x)
:name "Asymptote C"
(- (/ x (+ x 1.0)) (/ (+ x 1.0) (- x 1.0))))