\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -7685.4142355256245 \lor \neg \left(x \le 7872.3195656579555\right):\\
\;\;\;\;\frac{-1}{{x}^{2}} - \mathsf{fma}\left(3, \frac{1}{{x}^{3}}, \frac{3}{x}\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\sqrt[3]{\frac{x}{x + 1}} \cdot \sqrt[3]{\frac{x}{x + 1}}, \sqrt[3]{\frac{x}{x + 1}}, -\frac{x + 1}{x - 1}\right)\\
\end{array}double f(double x) {
double r148625 = x;
double r148626 = 1.0;
double r148627 = r148625 + r148626;
double r148628 = r148625 / r148627;
double r148629 = r148625 - r148626;
double r148630 = r148627 / r148629;
double r148631 = r148628 - r148630;
return r148631;
}
double f(double x) {
double r148632 = x;
double r148633 = -7685.4142355256245;
bool r148634 = r148632 <= r148633;
double r148635 = 7872.3195656579555;
bool r148636 = r148632 <= r148635;
double r148637 = !r148636;
bool r148638 = r148634 || r148637;
double r148639 = 1.0;
double r148640 = -r148639;
double r148641 = 2.0;
double r148642 = pow(r148632, r148641);
double r148643 = r148640 / r148642;
double r148644 = 3.0;
double r148645 = 1.0;
double r148646 = 3.0;
double r148647 = pow(r148632, r148646);
double r148648 = r148645 / r148647;
double r148649 = r148644 / r148632;
double r148650 = fma(r148644, r148648, r148649);
double r148651 = r148643 - r148650;
double r148652 = r148632 + r148639;
double r148653 = r148632 / r148652;
double r148654 = cbrt(r148653);
double r148655 = r148654 * r148654;
double r148656 = r148632 - r148639;
double r148657 = r148652 / r148656;
double r148658 = -r148657;
double r148659 = fma(r148655, r148654, r148658);
double r148660 = r148638 ? r148651 : r148659;
return r148660;
}



Bits error versus x
if x < -7685.4142355256245 or 7872.3195656579555 < x Initial program 59.0
rmApplied add-cube-cbrt59.1
Applied fma-neg59.1
Taylor expanded around inf 0.3
Simplified0.3
Taylor expanded around 0 0.3
Simplified0.0
if -7685.4142355256245 < x < 7872.3195656579555Initial program 0.1
rmApplied add-cube-cbrt0.1
Applied fma-neg0.1
Final simplification0.1
herbie shell --seed 2020025 +o rules:numerics
(FPCore (x)
:name "Asymptote C"
:precision binary64
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))