\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -254622.2966043480264488607645034790039062 \lor \neg \left(x \le 116203.3199069337861146777868270874023438\right):\\
\;\;\;\;-\left(\left(\log \left(e^{\frac{1}{x \cdot x}}\right) + \frac{3}{x}\right) + \frac{3}{{x}^{3}}\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\frac{x}{x \cdot x - 1 \cdot 1}, x - 1, \frac{\frac{-1}{\mathsf{fma}\left(x, x, 1 \cdot \left(1 - x\right)\right)}}{\frac{x - 1}{{x}^{3} + {1}^{3}}}\right) + \frac{1}{\frac{x - 1}{{x}^{3} + {1}^{3}}} \cdot \left(\frac{-1}{\mathsf{fma}\left(x, x, 1 \cdot \left(1 - x\right)\right)} + \frac{1}{\mathsf{fma}\left(x, x, 1 \cdot \left(1 - x\right)\right)}\right)\\
\end{array}double f(double x) {
double r101787 = x;
double r101788 = 1.0;
double r101789 = r101787 + r101788;
double r101790 = r101787 / r101789;
double r101791 = r101787 - r101788;
double r101792 = r101789 / r101791;
double r101793 = r101790 - r101792;
return r101793;
}
double f(double x) {
double r101794 = x;
double r101795 = -254622.29660434803;
bool r101796 = r101794 <= r101795;
double r101797 = 116203.31990693379;
bool r101798 = r101794 <= r101797;
double r101799 = !r101798;
bool r101800 = r101796 || r101799;
double r101801 = 1.0;
double r101802 = r101794 * r101794;
double r101803 = r101801 / r101802;
double r101804 = exp(r101803);
double r101805 = log(r101804);
double r101806 = 3.0;
double r101807 = r101806 / r101794;
double r101808 = r101805 + r101807;
double r101809 = 3.0;
double r101810 = pow(r101794, r101809);
double r101811 = r101806 / r101810;
double r101812 = r101808 + r101811;
double r101813 = -r101812;
double r101814 = r101801 * r101801;
double r101815 = r101802 - r101814;
double r101816 = r101794 / r101815;
double r101817 = r101794 - r101801;
double r101818 = -1.0;
double r101819 = r101801 - r101794;
double r101820 = r101801 * r101819;
double r101821 = fma(r101794, r101794, r101820);
double r101822 = r101818 / r101821;
double r101823 = pow(r101801, r101809);
double r101824 = r101810 + r101823;
double r101825 = r101817 / r101824;
double r101826 = r101822 / r101825;
double r101827 = fma(r101816, r101817, r101826);
double r101828 = 1.0;
double r101829 = r101828 / r101825;
double r101830 = r101828 / r101821;
double r101831 = r101822 + r101830;
double r101832 = r101829 * r101831;
double r101833 = r101827 + r101832;
double r101834 = r101800 ? r101813 : r101833;
return r101834;
}



Bits error versus x
if x < -254622.29660434803 or 116203.31990693379 < x Initial program 59.4
Taylor expanded around inf 0.3
Simplified0.0
rmApplied add-log-exp0.5
if -254622.29660434803 < x < 116203.31990693379Initial program 0.1
rmApplied clear-num0.1
rmApplied flip3-+0.1
Applied associate-/r/0.1
Applied add-cube-cbrt0.1
Applied times-frac0.1
Applied flip-+0.2
Applied associate-/r/0.1
Applied prod-diff0.1
Simplified0.1
Simplified0.1
Final simplification0.3
herbie shell --seed 2019303 +o rules:numerics
(FPCore (x)
:name "Asymptote C"
:precision binary64
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))