\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -1894516243.7978997 \lor \neg \left(x \le 115896.898570377947\right):\\
\;\;\;\;\left(\frac{-1}{{x}^{2}} - \frac{3}{x}\right) - \frac{3}{{x}^{3}}\\
\mathbf{else}:\\
\;\;\;\;\frac{-\left(3 \cdot x + 1\right)}{\left(x + 1\right) \cdot \left(x - 1\right)}\\
\end{array}double f(double x) {
double r118775 = x;
double r118776 = 1.0;
double r118777 = r118775 + r118776;
double r118778 = r118775 / r118777;
double r118779 = r118775 - r118776;
double r118780 = r118777 / r118779;
double r118781 = r118778 - r118780;
return r118781;
}
double f(double x) {
double r118782 = x;
double r118783 = -1894516243.7978997;
bool r118784 = r118782 <= r118783;
double r118785 = 115896.89857037795;
bool r118786 = r118782 <= r118785;
double r118787 = !r118786;
bool r118788 = r118784 || r118787;
double r118789 = 1.0;
double r118790 = -r118789;
double r118791 = 2.0;
double r118792 = pow(r118782, r118791);
double r118793 = r118790 / r118792;
double r118794 = 3.0;
double r118795 = r118794 / r118782;
double r118796 = r118793 - r118795;
double r118797 = 3.0;
double r118798 = pow(r118782, r118797);
double r118799 = r118794 / r118798;
double r118800 = r118796 - r118799;
double r118801 = r118794 * r118782;
double r118802 = r118801 + r118789;
double r118803 = -r118802;
double r118804 = r118782 + r118789;
double r118805 = r118782 - r118789;
double r118806 = r118804 * r118805;
double r118807 = r118803 / r118806;
double r118808 = r118788 ? r118800 : r118807;
return r118808;
}



Bits error versus x
Results
if x < -1894516243.7978997 or 115896.89857037795 < x Initial program 59.7
Taylor expanded around inf 0.3
Simplified0.0
if -1894516243.7978997 < x < 115896.89857037795Initial program 0.2
rmApplied *-un-lft-identity0.2
Applied add-cube-cbrt0.3
Applied times-frac0.3
Simplified0.3
rmApplied associate-*r/0.3
Applied frac-sub0.3
Simplified0.2
Taylor expanded around 0 0.0
Final simplification0.0
herbie shell --seed 2020036
(FPCore (x)
:name "Asymptote C"
:precision binary64
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))