\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -11446.42608074014606245327740907669067383 \lor \neg \left(x \le 11003.15826591666154854465276002883911133\right):\\
\;\;\;\;-\left(\frac{3}{x} + \left(\frac{3}{{x}^{3}} + \frac{1}{x \cdot x}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\frac{x}{x + 1} + \frac{1 + x}{x - 1}} \cdot \frac{\left(x \cdot \frac{x}{x + 1}\right) \cdot \left(x - 1\right) - \left(x + 1\right) \cdot \left(\left(1 + x\right) \cdot \frac{1 + x}{x - 1}\right)}{\left(x + 1\right) \cdot \left(x - 1\right)}\\
\end{array}double f(double x) {
double r114604 = x;
double r114605 = 1.0;
double r114606 = r114604 + r114605;
double r114607 = r114604 / r114606;
double r114608 = r114604 - r114605;
double r114609 = r114606 / r114608;
double r114610 = r114607 - r114609;
return r114610;
}
double f(double x) {
double r114611 = x;
double r114612 = -11446.426080740146;
bool r114613 = r114611 <= r114612;
double r114614 = 11003.158265916662;
bool r114615 = r114611 <= r114614;
double r114616 = !r114615;
bool r114617 = r114613 || r114616;
double r114618 = 3.0;
double r114619 = r114618 / r114611;
double r114620 = 3.0;
double r114621 = pow(r114611, r114620);
double r114622 = r114618 / r114621;
double r114623 = 1.0;
double r114624 = r114611 * r114611;
double r114625 = r114623 / r114624;
double r114626 = r114622 + r114625;
double r114627 = r114619 + r114626;
double r114628 = -r114627;
double r114629 = 1.0;
double r114630 = r114611 + r114623;
double r114631 = r114611 / r114630;
double r114632 = r114623 + r114611;
double r114633 = r114611 - r114623;
double r114634 = r114632 / r114633;
double r114635 = r114631 + r114634;
double r114636 = r114629 / r114635;
double r114637 = r114611 * r114631;
double r114638 = r114637 * r114633;
double r114639 = r114632 * r114634;
double r114640 = r114630 * r114639;
double r114641 = r114638 - r114640;
double r114642 = r114630 * r114633;
double r114643 = r114641 / r114642;
double r114644 = r114636 * r114643;
double r114645 = r114617 ? r114628 : r114644;
return r114645;
}



Bits error versus x
Results
if x < -11446.426080740146 or 11003.158265916662 < x Initial program 59.2
Simplified59.2
Taylor expanded around inf 0.3
Simplified0.0
if -11446.426080740146 < x < 11003.158265916662Initial program 0.1
Simplified0.1
rmApplied flip--0.1
rmApplied associate-*l/0.1
Applied associate-*l/0.1
Applied frac-sub0.1
Applied associate-/l/0.1
rmApplied *-un-lft-identity0.1
Applied times-frac0.1
Final simplification0.1
herbie shell --seed 2019235
(FPCore (x)
:name "Asymptote C"
:precision binary64
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))