\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -11755.062723959316 \lor \neg \left(x \le 14618.9471916209168\right):\\
\;\;\;\;-\left(\left(\frac{3}{x} + \frac{1}{x \cdot x}\right) + \frac{3}{{x}^{3}}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{x}{x + 1} \cdot \frac{x}{x + 1} - \frac{x + 1}{x - 1} \cdot \frac{x + 1}{x - 1}}{\frac{x}{x + 1} + \frac{x + 1}{x - 1}}\\
\end{array}double f(double x) {
double r106436 = x;
double r106437 = 1.0;
double r106438 = r106436 + r106437;
double r106439 = r106436 / r106438;
double r106440 = r106436 - r106437;
double r106441 = r106438 / r106440;
double r106442 = r106439 - r106441;
return r106442;
}
double f(double x) {
double r106443 = x;
double r106444 = -11755.062723959316;
bool r106445 = r106443 <= r106444;
double r106446 = 14618.947191620917;
bool r106447 = r106443 <= r106446;
double r106448 = !r106447;
bool r106449 = r106445 || r106448;
double r106450 = 3.0;
double r106451 = r106450 / r106443;
double r106452 = 1.0;
double r106453 = r106443 * r106443;
double r106454 = r106452 / r106453;
double r106455 = r106451 + r106454;
double r106456 = 3.0;
double r106457 = pow(r106443, r106456);
double r106458 = r106450 / r106457;
double r106459 = r106455 + r106458;
double r106460 = -r106459;
double r106461 = r106443 + r106452;
double r106462 = r106443 / r106461;
double r106463 = r106462 * r106462;
double r106464 = r106443 - r106452;
double r106465 = r106461 / r106464;
double r106466 = r106465 * r106465;
double r106467 = r106463 - r106466;
double r106468 = r106462 + r106465;
double r106469 = r106467 / r106468;
double r106470 = r106449 ? r106460 : r106469;
return r106470;
}



Bits error versus x
Results
if x < -11755.062723959316 or 14618.947191620917 < x Initial program 59.5
Taylor expanded around inf 0.3
Simplified0.0
if -11755.062723959316 < x < 14618.947191620917Initial program 0.1
rmApplied flip--0.1
Final simplification0.1
herbie shell --seed 2020046
(FPCore (x)
:name "Asymptote C"
:precision binary64
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))