\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -12879.754469549705 \lor \neg \left(x \le 12427.129501950301\right):\\
\;\;\;\;\mathsf{fma}\left(-1, \frac{\frac{1}{x}}{x}, \frac{-3}{x}\right) - 3 \cdot \frac{1}{{x}^{3}}\\
\mathbf{else}:\\
\;\;\;\;\frac{x \cdot \left(x - 1\right) - \left(x + 1\right) \cdot \left(x + 1\right)}{x \cdot x - 1 \cdot 1}\\
\end{array}double f(double x) {
double r132609 = x;
double r132610 = 1.0;
double r132611 = r132609 + r132610;
double r132612 = r132609 / r132611;
double r132613 = r132609 - r132610;
double r132614 = r132611 / r132613;
double r132615 = r132612 - r132614;
return r132615;
}
double f(double x) {
double r132616 = x;
double r132617 = -12879.754469549705;
bool r132618 = r132616 <= r132617;
double r132619 = 12427.129501950301;
bool r132620 = r132616 <= r132619;
double r132621 = !r132620;
bool r132622 = r132618 || r132621;
double r132623 = -1.0;
double r132624 = 1.0;
double r132625 = r132624 / r132616;
double r132626 = r132625 / r132616;
double r132627 = 3.0;
double r132628 = -r132627;
double r132629 = r132628 / r132616;
double r132630 = fma(r132623, r132626, r132629);
double r132631 = 1.0;
double r132632 = 3.0;
double r132633 = pow(r132616, r132632);
double r132634 = r132631 / r132633;
double r132635 = r132627 * r132634;
double r132636 = r132630 - r132635;
double r132637 = r132616 - r132624;
double r132638 = r132616 * r132637;
double r132639 = r132616 + r132624;
double r132640 = r132639 * r132639;
double r132641 = r132638 - r132640;
double r132642 = r132616 * r132616;
double r132643 = r132624 * r132624;
double r132644 = r132642 - r132643;
double r132645 = r132641 / r132644;
double r132646 = r132622 ? r132636 : r132645;
return r132646;
}



Bits error versus x
if x < -12879.754469549705 or 12427.129501950301 < x Initial program 59.2
Taylor expanded around inf 0.3
Simplified0.3
rmApplied fma-udef0.3
Applied associate--r+0.3
Simplified0.0
if -12879.754469549705 < x < 12427.129501950301Initial program 0.1
rmApplied frac-sub0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2020056 +o rules:numerics
(FPCore (x)
:name "Asymptote C"
:precision binary64
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))