\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -17519.327964058364 \lor \neg \left(x \le 13449.2242533471308\right):\\
\;\;\;\;\frac{-1}{{x}^{2}} - \mathsf{fma}\left(3, \frac{1}{{x}^{3}}, \frac{3}{x}\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(x, \frac{1}{x + 1}, -\frac{x + 1}{x - 1}\right)\\
\end{array}double f(double x) {
double r129110 = x;
double r129111 = 1.0;
double r129112 = r129110 + r129111;
double r129113 = r129110 / r129112;
double r129114 = r129110 - r129111;
double r129115 = r129112 / r129114;
double r129116 = r129113 - r129115;
return r129116;
}
double f(double x) {
double r129117 = x;
double r129118 = -17519.327964058364;
bool r129119 = r129117 <= r129118;
double r129120 = 13449.22425334713;
bool r129121 = r129117 <= r129120;
double r129122 = !r129121;
bool r129123 = r129119 || r129122;
double r129124 = 1.0;
double r129125 = -r129124;
double r129126 = 2.0;
double r129127 = pow(r129117, r129126);
double r129128 = r129125 / r129127;
double r129129 = 3.0;
double r129130 = 1.0;
double r129131 = 3.0;
double r129132 = pow(r129117, r129131);
double r129133 = r129130 / r129132;
double r129134 = r129129 / r129117;
double r129135 = fma(r129129, r129133, r129134);
double r129136 = r129128 - r129135;
double r129137 = r129117 + r129124;
double r129138 = r129130 / r129137;
double r129139 = r129117 - r129124;
double r129140 = r129137 / r129139;
double r129141 = -r129140;
double r129142 = fma(r129117, r129138, r129141);
double r129143 = r129123 ? r129136 : r129142;
return r129143;
}



Bits error versus x
if x < -17519.327964058364 or 13449.22425334713 < x Initial program 59.3
Taylor expanded around inf 0.3
Simplified0.3
Taylor expanded around 0 0.3
Simplified0.0
if -17519.327964058364 < x < 13449.22425334713Initial program 0.1
rmApplied div-inv0.1
Applied fma-neg0.1
Final simplification0.1
herbie shell --seed 2020049 +o rules:numerics
(FPCore (x)
:name "Asymptote C"
:precision binary64
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))