\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -0.331107687230784:\\
\;\;\;\;-\left(\frac{1}{x \cdot x} + \left(\frac{3}{\left(x \cdot x\right) \cdot x} + \frac{3}{x}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{3 \cdot x + 1}}{x + 1} \cdot \frac{-\sqrt{3 \cdot x + 1}}{x - 1}\\
\end{array}double f(double x) {
double r3981431 = x;
double r3981432 = 1.0;
double r3981433 = r3981431 + r3981432;
double r3981434 = r3981431 / r3981433;
double r3981435 = r3981431 - r3981432;
double r3981436 = r3981433 / r3981435;
double r3981437 = r3981434 - r3981436;
return r3981437;
}
double f(double x) {
double r3981438 = x;
double r3981439 = -0.331107687230784;
bool r3981440 = r3981438 <= r3981439;
double r3981441 = 1.0;
double r3981442 = r3981438 * r3981438;
double r3981443 = r3981441 / r3981442;
double r3981444 = 3.0;
double r3981445 = r3981442 * r3981438;
double r3981446 = r3981444 / r3981445;
double r3981447 = r3981444 / r3981438;
double r3981448 = r3981446 + r3981447;
double r3981449 = r3981443 + r3981448;
double r3981450 = -r3981449;
double r3981451 = r3981444 * r3981438;
double r3981452 = r3981451 + r3981441;
double r3981453 = sqrt(r3981452);
double r3981454 = r3981438 + r3981441;
double r3981455 = r3981453 / r3981454;
double r3981456 = -r3981453;
double r3981457 = r3981438 - r3981441;
double r3981458 = r3981456 / r3981457;
double r3981459 = r3981455 * r3981458;
double r3981460 = r3981440 ? r3981450 : r3981459;
return r3981460;
}



Bits error versus x
Results
if x < -0.331107687230784Initial program 58.4
Taylor expanded around inf 0.9
Simplified0.6
if -0.331107687230784 < x Initial program 19.1
rmApplied frac-sub19.7
Taylor expanded around inf 10.1
rmApplied add-sqr-sqrt10.1
Applied distribute-lft-neg-in10.1
Applied times-frac0.3
Final simplification0.4
herbie shell --seed 2019134
(FPCore (x)
:name "Asymptote C"
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))