\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -10364.72278293059571296907961368560791016 \lor \neg \left(x \le 12015.49448950132136815227568149566650391\right):\\
\;\;\;\;-\left(\left(\frac{1}{x \cdot x} + \frac{3}{x}\right) + \frac{3}{{x}^{3}}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\mathsf{fma}\left({\left(\frac{x}{{x}^{3} + {1}^{3}}\right)}^{3}, {\left(\mathsf{fma}\left(x, x, 1 \cdot \left(1 - x\right)\right)\right)}^{3}, \frac{{\left(x + 1\right)}^{3}}{x - 1} \cdot \frac{-1}{\left(x - 1\right) \cdot \left(x - 1\right)}\right) + \frac{{\left(x + 1\right)}^{3}}{x - 1} \cdot \left(\frac{-1}{\left(x - 1\right) \cdot \left(x - 1\right)} + \frac{1}{\left(x - 1\right) \cdot \left(x - 1\right)}\right)}{\mathsf{fma}\left(\frac{x}{1 + x}, \frac{x}{1 + x}, \mathsf{fma}\left(\frac{x + 1}{x - 1}, \frac{x + 1}{x - 1}, \frac{x}{x - 1}\right)\right)}\\
\end{array}double f(double x) {
double r94855 = x;
double r94856 = 1.0;
double r94857 = r94855 + r94856;
double r94858 = r94855 / r94857;
double r94859 = r94855 - r94856;
double r94860 = r94857 / r94859;
double r94861 = r94858 - r94860;
return r94861;
}
double f(double x) {
double r94862 = x;
double r94863 = -10364.722782930596;
bool r94864 = r94862 <= r94863;
double r94865 = 12015.494489501321;
bool r94866 = r94862 <= r94865;
double r94867 = !r94866;
bool r94868 = r94864 || r94867;
double r94869 = 1.0;
double r94870 = r94862 * r94862;
double r94871 = r94869 / r94870;
double r94872 = 3.0;
double r94873 = r94872 / r94862;
double r94874 = r94871 + r94873;
double r94875 = 3.0;
double r94876 = pow(r94862, r94875);
double r94877 = r94872 / r94876;
double r94878 = r94874 + r94877;
double r94879 = -r94878;
double r94880 = pow(r94869, r94875);
double r94881 = r94876 + r94880;
double r94882 = r94862 / r94881;
double r94883 = pow(r94882, r94875);
double r94884 = r94869 - r94862;
double r94885 = r94869 * r94884;
double r94886 = fma(r94862, r94862, r94885);
double r94887 = pow(r94886, r94875);
double r94888 = r94862 + r94869;
double r94889 = pow(r94888, r94875);
double r94890 = r94862 - r94869;
double r94891 = r94889 / r94890;
double r94892 = -1.0;
double r94893 = r94890 * r94890;
double r94894 = r94892 / r94893;
double r94895 = r94891 * r94894;
double r94896 = fma(r94883, r94887, r94895);
double r94897 = 1.0;
double r94898 = r94897 / r94893;
double r94899 = r94894 + r94898;
double r94900 = r94891 * r94899;
double r94901 = r94896 + r94900;
double r94902 = r94869 + r94862;
double r94903 = r94862 / r94902;
double r94904 = r94888 / r94890;
double r94905 = r94862 / r94890;
double r94906 = fma(r94904, r94904, r94905);
double r94907 = fma(r94903, r94903, r94906);
double r94908 = r94901 / r94907;
double r94909 = r94868 ? r94879 : r94908;
return r94909;
}



Bits error versus x
if x < -10364.722782930596 or 12015.494489501321 < x Initial program 59.2
Taylor expanded around inf 0.3
Simplified0.0
if -10364.722782930596 < x < 12015.494489501321Initial program 0.1
rmApplied flip3--0.1
Simplified0.1
rmApplied add-cube-cbrt0.2
Applied *-un-lft-identity0.2
Applied times-frac0.2
Applied unpow-prod-down0.2
Applied flip3-+0.2
Applied associate-/r/0.2
Applied unpow-prod-down0.2
Applied prod-diff0.2
Simplified0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019326 +o rules:numerics
(FPCore (x)
:name "Asymptote C"
:precision binary64
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))