\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -9843.5346029313187 \lor \neg \left(x \le 9309.67452526344459\right):\\
\;\;\;\;\left(\frac{-1}{{x}^{2}} - \frac{3}{x}\right) - \frac{3}{{x}^{3}}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{x + 1} - \frac{{x}^{3} + {1}^{3}}{\left(1 \cdot \left(1 - x\right) + {x}^{2}\right) \cdot \left(x - 1\right)}\\
\end{array}double f(double x) {
double r146459 = x;
double r146460 = 1.0;
double r146461 = r146459 + r146460;
double r146462 = r146459 / r146461;
double r146463 = r146459 - r146460;
double r146464 = r146461 / r146463;
double r146465 = r146462 - r146464;
return r146465;
}
double f(double x) {
double r146466 = x;
double r146467 = -9843.534602931319;
bool r146468 = r146466 <= r146467;
double r146469 = 9309.674525263445;
bool r146470 = r146466 <= r146469;
double r146471 = !r146470;
bool r146472 = r146468 || r146471;
double r146473 = 1.0;
double r146474 = -r146473;
double r146475 = 2.0;
double r146476 = pow(r146466, r146475);
double r146477 = r146474 / r146476;
double r146478 = 3.0;
double r146479 = r146478 / r146466;
double r146480 = r146477 - r146479;
double r146481 = 3.0;
double r146482 = pow(r146466, r146481);
double r146483 = r146478 / r146482;
double r146484 = r146480 - r146483;
double r146485 = r146466 + r146473;
double r146486 = r146466 / r146485;
double r146487 = pow(r146473, r146481);
double r146488 = r146482 + r146487;
double r146489 = r146473 - r146466;
double r146490 = r146473 * r146489;
double r146491 = r146490 + r146476;
double r146492 = r146466 - r146473;
double r146493 = r146491 * r146492;
double r146494 = r146488 / r146493;
double r146495 = r146486 - r146494;
double r146496 = r146472 ? r146484 : r146495;
return r146496;
}



Bits error versus x
Results
if x < -9843.534602931319 or 9309.674525263445 < x Initial program 59.2
Taylor expanded around inf 0.3
Simplified0.0
if -9843.534602931319 < x < 9309.674525263445Initial program 0.1
rmApplied flip3-+0.1
Applied associate-/l/0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2020018
(FPCore (x)
:name "Asymptote C"
:precision binary64
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))