\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -7534224028620261 \lor \neg \left(x \le 7051386931030.59765625\right):\\
\;\;\;\;-\left(\left(\frac{1}{x \cdot x} + \frac{3}{x}\right) + \frac{3}{{x}^{3}}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{x \cdot \left(\left(x - 1\right) - \left(x + 1\right)\right)}{\left(x - 1\right) \cdot \left(x + 1\right)} - \frac{1}{x - 1} \cdot 1\\
\end{array}double f(double x) {
double r91418 = x;
double r91419 = 1.0;
double r91420 = r91418 + r91419;
double r91421 = r91418 / r91420;
double r91422 = r91418 - r91419;
double r91423 = r91420 / r91422;
double r91424 = r91421 - r91423;
return r91424;
}
double f(double x) {
double r91425 = x;
double r91426 = -7534224028620261.0;
bool r91427 = r91425 <= r91426;
double r91428 = 7051386931030.598;
bool r91429 = r91425 <= r91428;
double r91430 = !r91429;
bool r91431 = r91427 || r91430;
double r91432 = 1.0;
double r91433 = r91425 * r91425;
double r91434 = r91432 / r91433;
double r91435 = 3.0;
double r91436 = r91435 / r91425;
double r91437 = r91434 + r91436;
double r91438 = 3.0;
double r91439 = pow(r91425, r91438);
double r91440 = r91435 / r91439;
double r91441 = r91437 + r91440;
double r91442 = -r91441;
double r91443 = r91425 - r91432;
double r91444 = r91425 + r91432;
double r91445 = r91443 - r91444;
double r91446 = r91425 * r91445;
double r91447 = r91443 * r91444;
double r91448 = r91446 / r91447;
double r91449 = 1.0;
double r91450 = r91449 / r91443;
double r91451 = r91450 * r91432;
double r91452 = r91448 - r91451;
double r91453 = r91431 ? r91442 : r91452;
return r91453;
}



Bits error versus x
Results
if x < -7534224028620261.0 or 7051386931030.598 < x Initial program 60.4
rmApplied flip--61.6
Applied associate-/r/61.5
Simplified60.5
rmApplied distribute-lft-in60.5
Applied associate--r+53.9
Simplified52.6
Taylor expanded around inf 0.3
Simplified0.0
if -7534224028620261.0 < x < 7051386931030.598Initial program 1.0
rmApplied flip--1.0
Applied associate-/r/1.0
Simplified1.0
rmApplied distribute-lft-in1.0
Applied associate--r+1.0
Simplified1.0
rmApplied frac-sub1.0
Simplified0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019303
(FPCore (x)
:name "Asymptote C"
:precision binary64
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))