\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -29617.5726496199022:\\
\;\;\;\;\frac{-\left(12 \cdot \frac{1}{{x}^{2}} + \left(9 \cdot \frac{1}{x} + 48 \cdot \frac{1}{{x}^{3}}\right)\right)}{\mathsf{fma}\left(\frac{x + 1}{x - 1}, \frac{x}{x + 1} + \frac{x + 1}{x - 1}, \frac{x}{x + 1} \cdot \frac{x}{x + 1}\right)}\\
\mathbf{elif}\;x \le 18487.752119395096:\\
\;\;\;\;\frac{\left({\left(\frac{x}{x \cdot x - 1 \cdot 1}\right)}^{3} \cdot {\left(x - 1\right)}^{3} + \left(-{\left(\frac{1}{x - 1}\right)}^{3} \cdot {\left(x + 1\right)}^{3}\right)\right) + \mathsf{fma}\left(-{\left(\frac{1}{x - 1}\right)}^{3}, {\left(x + 1\right)}^{3}, {\left(\frac{1}{x - 1}\right)}^{3} \cdot {\left(x + 1\right)}^{3}\right)}{\mathsf{fma}\left(\frac{x + 1}{x - 1}, \frac{x}{x + 1} + \frac{x + 1}{x - 1}, \frac{x}{x + 1} \cdot \frac{x}{x + 1}\right)}\\
\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 r153879 = x;
double r153880 = 1.0;
double r153881 = r153879 + r153880;
double r153882 = r153879 / r153881;
double r153883 = r153879 - r153880;
double r153884 = r153881 / r153883;
double r153885 = r153882 - r153884;
return r153885;
}
double f(double x) {
double r153886 = x;
double r153887 = -29617.572649619902;
bool r153888 = r153886 <= r153887;
double r153889 = 12.0;
double r153890 = 1.0;
double r153891 = 2.0;
double r153892 = pow(r153886, r153891);
double r153893 = r153890 / r153892;
double r153894 = r153889 * r153893;
double r153895 = 9.0;
double r153896 = r153890 / r153886;
double r153897 = r153895 * r153896;
double r153898 = 48.0;
double r153899 = 3.0;
double r153900 = pow(r153886, r153899);
double r153901 = r153890 / r153900;
double r153902 = r153898 * r153901;
double r153903 = r153897 + r153902;
double r153904 = r153894 + r153903;
double r153905 = -r153904;
double r153906 = 1.0;
double r153907 = r153886 + r153906;
double r153908 = r153886 - r153906;
double r153909 = r153907 / r153908;
double r153910 = r153886 / r153907;
double r153911 = r153910 + r153909;
double r153912 = r153910 * r153910;
double r153913 = fma(r153909, r153911, r153912);
double r153914 = r153905 / r153913;
double r153915 = 18487.752119395096;
bool r153916 = r153886 <= r153915;
double r153917 = r153886 * r153886;
double r153918 = r153906 * r153906;
double r153919 = r153917 - r153918;
double r153920 = r153886 / r153919;
double r153921 = pow(r153920, r153899);
double r153922 = pow(r153908, r153899);
double r153923 = r153921 * r153922;
double r153924 = r153890 / r153908;
double r153925 = pow(r153924, r153899);
double r153926 = pow(r153907, r153899);
double r153927 = r153925 * r153926;
double r153928 = -r153927;
double r153929 = r153923 + r153928;
double r153930 = -r153925;
double r153931 = fma(r153930, r153926, r153927);
double r153932 = r153929 + r153931;
double r153933 = r153932 / r153913;
double r153934 = -r153906;
double r153935 = r153934 / r153892;
double r153936 = 3.0;
double r153937 = r153936 * r153901;
double r153938 = fma(r153936, r153896, r153937);
double r153939 = r153935 - r153938;
double r153940 = r153916 ? r153933 : r153939;
double r153941 = r153888 ? r153914 : r153940;
return r153941;
}



Bits error versus x
if x < -29617.572649619902Initial program 59.4
rmApplied flip3--59.4
Simplified59.4
Taylor expanded around inf 0.4
if -29617.572649619902 < x < 18487.752119395096Initial program 0.1
rmApplied flip3--0.1
Simplified0.1
rmApplied div-inv0.1
Applied unpow-prod-down0.1
Applied flip-+0.1
Applied associate-/r/0.1
Applied unpow-prod-down0.1
Applied prod-diff0.1
rmApplied fma-udef0.1
if 18487.752119395096 < x Initial program 59.5
Taylor expanded around inf 0.3
Simplified0.3
Final simplification0.2
herbie shell --seed 2020003 +o rules:numerics
(FPCore (x)
:name "Asymptote C"
:precision binary64
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))