\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -1.002637632358202246507516974816098809242:\\
\;\;\;\;\left(\left(-\frac{1}{x \cdot x}\right) - \frac{3}{x}\right) - \frac{\frac{3}{x}}{x \cdot x}\\
\mathbf{elif}\;x \le 1.02083405594772891333832376403734087944:\\
\;\;\;\;\left(1 \cdot x + 3\right) \cdot x + 1\\
\mathbf{else}:\\
\;\;\;\;\left(\left(-\frac{1}{x \cdot x}\right) - \frac{3}{x}\right) - \frac{\frac{3}{x}}{x \cdot x}\\
\end{array}double f(double x) {
double r6023586 = x;
double r6023587 = 1.0;
double r6023588 = r6023586 + r6023587;
double r6023589 = r6023586 / r6023588;
double r6023590 = r6023586 - r6023587;
double r6023591 = r6023588 / r6023590;
double r6023592 = r6023589 - r6023591;
return r6023592;
}
double f(double x) {
double r6023593 = x;
double r6023594 = -1.0026376323582022;
bool r6023595 = r6023593 <= r6023594;
double r6023596 = 1.0;
double r6023597 = r6023593 * r6023593;
double r6023598 = r6023596 / r6023597;
double r6023599 = -r6023598;
double r6023600 = 3.0;
double r6023601 = r6023600 / r6023593;
double r6023602 = r6023599 - r6023601;
double r6023603 = r6023601 / r6023597;
double r6023604 = r6023602 - r6023603;
double r6023605 = 1.020834055947729;
bool r6023606 = r6023593 <= r6023605;
double r6023607 = r6023596 * r6023593;
double r6023608 = r6023607 + r6023600;
double r6023609 = r6023608 * r6023593;
double r6023610 = r6023609 + r6023596;
double r6023611 = r6023606 ? r6023610 : r6023604;
double r6023612 = r6023595 ? r6023604 : r6023611;
return r6023612;
}



Bits error versus x
Results
if x < -1.0026376323582022 or 1.020834055947729 < x Initial program 58.6
Taylor expanded around inf 0.7
Simplified0.4
if -1.0026376323582022 < x < 1.020834055947729Initial program 0.0
rmApplied add-cube-cbrt0.1
Taylor expanded around 0 0.6
Simplified0.5
Final simplification0.5
herbie shell --seed 2019168
(FPCore (x)
:name "Asymptote C"
(- (/ x (+ x 1.0)) (/ (+ x 1.0) (- x 1.0))))