\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -4423751.3748676982 \lor \neg \left(x \le 134430.98924424738\right):\\
\;\;\;\;\left(\frac{-1}{{x}^{2}} - \frac{3}{x}\right) - \frac{3}{{x}^{3}}\\
\mathbf{else}:\\
\;\;\;\;\frac{-\left(3 \cdot x + 1\right)}{x \cdot x - 1 \cdot 1}\\
\end{array}double f(double x) {
double r135162 = x;
double r135163 = 1.0;
double r135164 = r135162 + r135163;
double r135165 = r135162 / r135164;
double r135166 = r135162 - r135163;
double r135167 = r135164 / r135166;
double r135168 = r135165 - r135167;
return r135168;
}
double f(double x) {
double r135169 = x;
double r135170 = -4423751.374867698;
bool r135171 = r135169 <= r135170;
double r135172 = 134430.98924424738;
bool r135173 = r135169 <= r135172;
double r135174 = !r135173;
bool r135175 = r135171 || r135174;
double r135176 = 1.0;
double r135177 = -r135176;
double r135178 = 2.0;
double r135179 = pow(r135169, r135178);
double r135180 = r135177 / r135179;
double r135181 = 3.0;
double r135182 = r135181 / r135169;
double r135183 = r135180 - r135182;
double r135184 = 3.0;
double r135185 = pow(r135169, r135184);
double r135186 = r135181 / r135185;
double r135187 = r135183 - r135186;
double r135188 = r135181 * r135169;
double r135189 = r135188 + r135176;
double r135190 = -r135189;
double r135191 = r135169 * r135169;
double r135192 = r135176 * r135176;
double r135193 = r135191 - r135192;
double r135194 = r135190 / r135193;
double r135195 = r135175 ? r135187 : r135194;
return r135195;
}



Bits error versus x
Results
if x < -4423751.374867698 or 134430.98924424738 < x Initial program 59.7
Taylor expanded around inf 0.3
Simplified0.0
if -4423751.374867698 < x < 134430.98924424738Initial program 0.1
rmApplied frac-sub0.1
Simplified0.1
Taylor expanded around 0 0.0
Final simplification0.0
herbie shell --seed 2020021
(FPCore (x)
:name "Asymptote C"
:precision binary64
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))