\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -1816146799751588 \lor \neg \left(x \le 299480.83182101510465145111083984375\right):\\
\;\;\;\;\left(\frac{-1}{{x}^{2}} - \frac{3}{x}\right) - \frac{3}{{x}^{3}}\\
\mathbf{else}:\\
\;\;\;\;\frac{x \cdot \left(\left(x - 1\right) - \left(x + 1\right)\right)}{x \cdot x - 1 \cdot 1} - 1 \cdot \frac{1}{x - 1}\\
\end{array}double f(double x) {
double r103746 = x;
double r103747 = 1.0;
double r103748 = r103746 + r103747;
double r103749 = r103746 / r103748;
double r103750 = r103746 - r103747;
double r103751 = r103748 / r103750;
double r103752 = r103749 - r103751;
return r103752;
}
double f(double x) {
double r103753 = x;
double r103754 = -1816146799751588.0;
bool r103755 = r103753 <= r103754;
double r103756 = 299480.8318210151;
bool r103757 = r103753 <= r103756;
double r103758 = !r103757;
bool r103759 = r103755 || r103758;
double r103760 = 1.0;
double r103761 = -r103760;
double r103762 = 2.0;
double r103763 = pow(r103753, r103762);
double r103764 = r103761 / r103763;
double r103765 = 3.0;
double r103766 = r103765 / r103753;
double r103767 = r103764 - r103766;
double r103768 = 3.0;
double r103769 = pow(r103753, r103768);
double r103770 = r103765 / r103769;
double r103771 = r103767 - r103770;
double r103772 = r103753 - r103760;
double r103773 = r103753 + r103760;
double r103774 = r103772 - r103773;
double r103775 = r103753 * r103774;
double r103776 = r103753 * r103753;
double r103777 = r103760 * r103760;
double r103778 = r103776 - r103777;
double r103779 = r103775 / r103778;
double r103780 = 1.0;
double r103781 = r103780 / r103772;
double r103782 = r103760 * r103781;
double r103783 = r103779 - r103782;
double r103784 = r103759 ? r103771 : r103783;
return r103784;
}



Bits error versus x
Results
if x < -1816146799751588.0 or 299480.8318210151 < x Initial program 59.9
Taylor expanded around inf 0.3
Simplified0.0
if -1816146799751588.0 < x < 299480.8318210151Initial program 0.6
rmApplied flip--0.6
Applied associate-/r/0.6
Simplified0.6
rmApplied distribute-rgt-in0.6
Applied associate--r+0.6
rmApplied un-div-inv0.6
Applied frac-sub0.6
Simplified0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019294
(FPCore (x)
:name "Asymptote C"
:precision binary64
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))