\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -10556.3209925428073:\\
\;\;\;\;\left(\frac{x}{x + 1} + \frac{x + 1}{x - 1}\right) \cdot \mathsf{fma}\left(0.25, \frac{1}{{x}^{2}}, 0.625 \cdot \frac{1}{{x}^{3}} - 1.5 \cdot \frac{1}{x}\right)\\
\mathbf{elif}\;x \le 11170.255305991283:\\
\;\;\;\;\left(\frac{x}{x + 1} + \frac{x + 1}{x - 1}\right) \cdot \frac{\frac{x}{x + 1} - \frac{x + 1}{x - 1}}{\frac{x}{x + 1} + \frac{x + 1}{x - 1}}\\
\mathbf{else}:\\
\;\;\;\;\frac{-1}{{x}^{2}} - \mathsf{fma}\left(3, \frac{1}{x}, 3 \cdot \frac{1}{{x}^{3}}\right)\\
\end{array}double f(double x) {
double r118780 = x;
double r118781 = 1.0;
double r118782 = r118780 + r118781;
double r118783 = r118780 / r118782;
double r118784 = r118780 - r118781;
double r118785 = r118782 / r118784;
double r118786 = r118783 - r118785;
return r118786;
}
double f(double x) {
double r118787 = x;
double r118788 = -10556.320992542807;
bool r118789 = r118787 <= r118788;
double r118790 = 1.0;
double r118791 = r118787 + r118790;
double r118792 = r118787 / r118791;
double r118793 = r118787 - r118790;
double r118794 = r118791 / r118793;
double r118795 = r118792 + r118794;
double r118796 = 0.25;
double r118797 = 1.0;
double r118798 = 2.0;
double r118799 = pow(r118787, r118798);
double r118800 = r118797 / r118799;
double r118801 = 0.625;
double r118802 = 3.0;
double r118803 = pow(r118787, r118802);
double r118804 = r118797 / r118803;
double r118805 = r118801 * r118804;
double r118806 = 1.5;
double r118807 = r118797 / r118787;
double r118808 = r118806 * r118807;
double r118809 = r118805 - r118808;
double r118810 = fma(r118796, r118800, r118809);
double r118811 = r118795 * r118810;
double r118812 = 11170.255305991283;
bool r118813 = r118787 <= r118812;
double r118814 = r118792 - r118794;
double r118815 = r118814 / r118795;
double r118816 = r118795 * r118815;
double r118817 = -r118790;
double r118818 = r118817 / r118799;
double r118819 = 3.0;
double r118820 = r118819 * r118804;
double r118821 = fma(r118819, r118807, r118820);
double r118822 = r118818 - r118821;
double r118823 = r118813 ? r118816 : r118822;
double r118824 = r118789 ? r118811 : r118823;
return r118824;
}



Bits error versus x
if x < -10556.320992542807Initial program 59.1
rmApplied flip--59.1
rmApplied *-un-lft-identity59.1
Applied difference-of-squares59.1
Applied times-frac59.1
Simplified59.1
Taylor expanded around inf 0.3
Simplified0.3
if -10556.320992542807 < x < 11170.255305991283Initial program 0.1
rmApplied flip--0.1
rmApplied *-un-lft-identity0.1
Applied difference-of-squares0.1
Applied times-frac0.1
Simplified0.1
if 11170.255305991283 < x Initial program 59.2
Taylor expanded around inf 0.3
Simplified0.3
Final simplification0.2
herbie shell --seed 2020035 +o rules:numerics
(FPCore (x)
:name "Asymptote C"
:precision binary64
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))