\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -10256.035048410798:\\
\;\;\;\;\left(\frac{\frac{-1}{x}}{x} + \frac{\frac{-1}{x}}{x} \cdot \frac{3}{x}\right) - \frac{3}{x}\\
\mathbf{elif}\;x \le 11268.875490349343:\\
\;\;\;\;\frac{1}{1 + x} \cdot x - \frac{1 + x}{x - 1}\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{\frac{-1}{x}}{x} + \frac{\frac{-1}{x}}{x} \cdot \frac{3}{x}\right) - \frac{3}{x}\\
\end{array}double f(double x) {
double r2594025 = x;
double r2594026 = 1.0;
double r2594027 = r2594025 + r2594026;
double r2594028 = r2594025 / r2594027;
double r2594029 = r2594025 - r2594026;
double r2594030 = r2594027 / r2594029;
double r2594031 = r2594028 - r2594030;
return r2594031;
}
double f(double x) {
double r2594032 = x;
double r2594033 = -10256.035048410798;
bool r2594034 = r2594032 <= r2594033;
double r2594035 = -1.0;
double r2594036 = r2594035 / r2594032;
double r2594037 = r2594036 / r2594032;
double r2594038 = 3.0;
double r2594039 = r2594038 / r2594032;
double r2594040 = r2594037 * r2594039;
double r2594041 = r2594037 + r2594040;
double r2594042 = r2594041 - r2594039;
double r2594043 = 11268.875490349343;
bool r2594044 = r2594032 <= r2594043;
double r2594045 = 1.0;
double r2594046 = r2594045 + r2594032;
double r2594047 = r2594045 / r2594046;
double r2594048 = r2594047 * r2594032;
double r2594049 = r2594032 - r2594045;
double r2594050 = r2594046 / r2594049;
double r2594051 = r2594048 - r2594050;
double r2594052 = r2594044 ? r2594051 : r2594042;
double r2594053 = r2594034 ? r2594042 : r2594052;
return r2594053;
}



Bits error versus x
Results
if x < -10256.035048410798 or 11268.875490349343 < x Initial program 59.2
Taylor expanded around -inf 0.3
Simplified0.0
rmApplied associate-+r-0.0
Simplified0.0
if -10256.035048410798 < x < 11268.875490349343Initial program 0.1
rmApplied div-inv0.1
Final simplification0.1
herbie shell --seed 2019129
(FPCore (x)
:name "Asymptote C"
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))