\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -11180.856750468918:\\
\;\;\;\;\left(\frac{-1}{x \cdot x} - \frac{3}{x}\right) - \frac{\frac{3}{x}}{x \cdot x}\\
\mathbf{elif}\;x \le 11958.15652724066:\\
\;\;\;\;\frac{x}{1 + x} - \left(1 + x\right) \cdot \frac{1}{x - 1}\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{-1}{x \cdot x} - \frac{3}{x}\right) - \frac{\frac{3}{x}}{x \cdot x}\\
\end{array}double f(double x) {
double r4661366 = x;
double r4661367 = 1.0;
double r4661368 = r4661366 + r4661367;
double r4661369 = r4661366 / r4661368;
double r4661370 = r4661366 - r4661367;
double r4661371 = r4661368 / r4661370;
double r4661372 = r4661369 - r4661371;
return r4661372;
}
double f(double x) {
double r4661373 = x;
double r4661374 = -11180.856750468918;
bool r4661375 = r4661373 <= r4661374;
double r4661376 = -1.0;
double r4661377 = r4661373 * r4661373;
double r4661378 = r4661376 / r4661377;
double r4661379 = 3.0;
double r4661380 = r4661379 / r4661373;
double r4661381 = r4661378 - r4661380;
double r4661382 = r4661380 / r4661377;
double r4661383 = r4661381 - r4661382;
double r4661384 = 11958.15652724066;
bool r4661385 = r4661373 <= r4661384;
double r4661386 = 1.0;
double r4661387 = r4661386 + r4661373;
double r4661388 = r4661373 / r4661387;
double r4661389 = r4661373 - r4661386;
double r4661390 = r4661386 / r4661389;
double r4661391 = r4661387 * r4661390;
double r4661392 = r4661388 - r4661391;
double r4661393 = r4661385 ? r4661392 : r4661383;
double r4661394 = r4661375 ? r4661383 : r4661393;
return r4661394;
}



Bits error versus x
Results
if x < -11180.856750468918 or 11958.15652724066 < x Initial program 59.4
Taylor expanded around inf 0.3
Simplified0.0
if -11180.856750468918 < x < 11958.15652724066Initial program 0.1
rmApplied div-inv0.1
Final simplification0.1
herbie shell --seed 2019144
(FPCore (x)
:name "Asymptote C"
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))