\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -0.3365987847882014:\\
\;\;\;\;\left(\frac{-1}{x \cdot x} + \frac{-3}{x}\right) + \frac{-3}{\left(x \cdot x\right) \cdot x}\\
\mathbf{elif}\;x \le 0.9979273725592545:\\
\;\;\;\;\sqrt{\mathsf{fma}\left(\left(\frac{1}{\sqrt[3]{1 + x} \cdot \sqrt[3]{1 + x}}\right), \left(\frac{x}{\sqrt[3]{1 + x}}\right), \left(-\frac{1 + x}{x - 1}\right)\right)} \cdot \sqrt{\mathsf{fma}\left(\left(\frac{1}{\sqrt[3]{1 + x} \cdot \sqrt[3]{1 + x}}\right), \left(\frac{x}{\sqrt[3]{1 + x}}\right), \left(-\frac{1 + x}{x - 1}\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{-1}{x \cdot x} + \frac{-3}{x}\right) + \frac{-3}{\left(x \cdot x\right) \cdot x}\\
\end{array}double f(double x) {
double r2781624 = x;
double r2781625 = 1.0;
double r2781626 = r2781624 + r2781625;
double r2781627 = r2781624 / r2781626;
double r2781628 = r2781624 - r2781625;
double r2781629 = r2781626 / r2781628;
double r2781630 = r2781627 - r2781629;
return r2781630;
}
double f(double x) {
double r2781631 = x;
double r2781632 = -0.3365987847882014;
bool r2781633 = r2781631 <= r2781632;
double r2781634 = -1.0;
double r2781635 = r2781631 * r2781631;
double r2781636 = r2781634 / r2781635;
double r2781637 = -3.0;
double r2781638 = r2781637 / r2781631;
double r2781639 = r2781636 + r2781638;
double r2781640 = r2781635 * r2781631;
double r2781641 = r2781637 / r2781640;
double r2781642 = r2781639 + r2781641;
double r2781643 = 0.9979273725592545;
bool r2781644 = r2781631 <= r2781643;
double r2781645 = 1.0;
double r2781646 = r2781645 + r2781631;
double r2781647 = cbrt(r2781646);
double r2781648 = r2781647 * r2781647;
double r2781649 = r2781645 / r2781648;
double r2781650 = r2781631 / r2781647;
double r2781651 = r2781631 - r2781645;
double r2781652 = r2781646 / r2781651;
double r2781653 = -r2781652;
double r2781654 = fma(r2781649, r2781650, r2781653);
double r2781655 = sqrt(r2781654);
double r2781656 = r2781655 * r2781655;
double r2781657 = r2781644 ? r2781656 : r2781642;
double r2781658 = r2781633 ? r2781642 : r2781657;
return r2781658;
}



Bits error versus x
if x < -0.3365987847882014 or 0.9979273725592545 < x Initial program 58.7
Taylor expanded around -inf 0.7
Simplified0.4
if -0.3365987847882014 < x < 0.9979273725592545Initial program 0.0
rmApplied add-cube-cbrt0.0
Applied *-un-lft-identity0.0
Applied times-frac0.0
Applied fma-neg0.0
rmApplied add-sqr-sqrt0.0
Final simplification0.2
herbie shell --seed 2019128 +o rules:numerics
(FPCore (x)
:name "Asymptote C"
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))