\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -1.006460284952229500277098850347101688385 \lor \neg \left(x \le 9050.184745868966274429112672805786132812\right):\\
\;\;\;\;-\left(\left(\frac{1}{x \cdot x} + \frac{3}{x}\right) + \frac{3}{{x}^{3}}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{x + 1} - \frac{\sqrt{x + 1}}{\frac{x - 1}{\sqrt{x + 1}}}\\
\end{array}double f(double x) {
double r144131 = x;
double r144132 = 1.0;
double r144133 = r144131 + r144132;
double r144134 = r144131 / r144133;
double r144135 = r144131 - r144132;
double r144136 = r144133 / r144135;
double r144137 = r144134 - r144136;
return r144137;
}
double f(double x) {
double r144138 = x;
double r144139 = -1.0064602849522295;
bool r144140 = r144138 <= r144139;
double r144141 = 9050.184745868966;
bool r144142 = r144138 <= r144141;
double r144143 = !r144142;
bool r144144 = r144140 || r144143;
double r144145 = 1.0;
double r144146 = r144138 * r144138;
double r144147 = r144145 / r144146;
double r144148 = 3.0;
double r144149 = r144148 / r144138;
double r144150 = r144147 + r144149;
double r144151 = 3.0;
double r144152 = pow(r144138, r144151);
double r144153 = r144148 / r144152;
double r144154 = r144150 + r144153;
double r144155 = -r144154;
double r144156 = r144138 + r144145;
double r144157 = r144138 / r144156;
double r144158 = sqrt(r144156);
double r144159 = r144138 - r144145;
double r144160 = r144159 / r144158;
double r144161 = r144158 / r144160;
double r144162 = r144157 - r144161;
double r144163 = r144144 ? r144155 : r144162;
return r144163;
}



Bits error versus x
Results
if x < -1.0064602849522295 or 9050.184745868966 < x Initial program 58.7
Taylor expanded around inf 0.5
Simplified0.2
if -1.0064602849522295 < x < 9050.184745868966Initial program 0.0
rmApplied add-sqr-sqrt0.1
Applied associate-/l*0.1
Final simplification0.1
herbie shell --seed 2019322 +o rules:numerics
(FPCore (x)
:name "Asymptote C"
:precision binary64
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))