\frac{1}{x + 1} - \frac{1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -1.002637632358202246507516974816098809242:\\
\;\;\;\;-\left(\frac{\frac{2}{x}}{x} + \left(\frac{2}{\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)} + \frac{2}{\left(x \cdot x\right) \cdot \left(x \cdot x\right)}\right)\right)\\
\mathbf{elif}\;x \le 1.257540011667535484463087414042092859745:\\
\;\;\;\;\left(\mathsf{fma}\left(x, x \cdot 1, 1\right) - x \cdot 1\right) - \frac{1}{x - 1}\\
\mathbf{else}:\\
\;\;\;\;-\left(\frac{\frac{2}{x}}{x} + \left(\frac{2}{\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)} + \frac{2}{\left(x \cdot x\right) \cdot \left(x \cdot x\right)}\right)\right)\\
\end{array}double f(double x) {
double r6001608 = 1.0;
double r6001609 = x;
double r6001610 = r6001609 + r6001608;
double r6001611 = r6001608 / r6001610;
double r6001612 = r6001609 - r6001608;
double r6001613 = r6001608 / r6001612;
double r6001614 = r6001611 - r6001613;
return r6001614;
}
double f(double x) {
double r6001615 = x;
double r6001616 = -1.0026376323582022;
bool r6001617 = r6001615 <= r6001616;
double r6001618 = 2.0;
double r6001619 = r6001618 / r6001615;
double r6001620 = r6001619 / r6001615;
double r6001621 = r6001615 * r6001615;
double r6001622 = r6001621 * r6001621;
double r6001623 = r6001621 * r6001622;
double r6001624 = r6001618 / r6001623;
double r6001625 = r6001618 / r6001622;
double r6001626 = r6001624 + r6001625;
double r6001627 = r6001620 + r6001626;
double r6001628 = -r6001627;
double r6001629 = 1.2575400116675355;
bool r6001630 = r6001615 <= r6001629;
double r6001631 = 1.0;
double r6001632 = r6001615 * r6001631;
double r6001633 = fma(r6001615, r6001632, r6001631);
double r6001634 = r6001633 - r6001632;
double r6001635 = r6001615 - r6001631;
double r6001636 = r6001631 / r6001635;
double r6001637 = r6001634 - r6001636;
double r6001638 = r6001630 ? r6001637 : r6001628;
double r6001639 = r6001617 ? r6001628 : r6001638;
return r6001639;
}



Bits error versus x
if x < -1.0026376323582022 or 1.2575400116675355 < x Initial program 29.2
Taylor expanded around inf 1.0
Simplified1.0
rmApplied associate-/r*0.3
if -1.0026376323582022 < x < 1.2575400116675355Initial program 0.0
Taylor expanded around 0 0.5
Simplified0.5
Final simplification0.4
herbie shell --seed 2019168 +o rules:numerics
(FPCore (x)
:name "Asymptote A"
(- (/ 1.0 (+ x 1.0)) (/ 1.0 (- x 1.0))))