\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -1781634.10393738676793873310089111328125 \lor \neg \left(x \le 67933.41155031512607820332050323486328125\right):\\
\;\;\;\;-\left(\frac{3}{x} + \left(\frac{3}{{x}^{3}} + \log \left(e^{\frac{\frac{1}{x}}{x}}\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\frac{x + 1}{x}} - \frac{x + 1}{x - 1}\\
\end{array}double f(double x) {
double r111070 = x;
double r111071 = 1.0;
double r111072 = r111070 + r111071;
double r111073 = r111070 / r111072;
double r111074 = r111070 - r111071;
double r111075 = r111072 / r111074;
double r111076 = r111073 - r111075;
return r111076;
}
double f(double x) {
double r111077 = x;
double r111078 = -1781634.1039373868;
bool r111079 = r111077 <= r111078;
double r111080 = 67933.41155031513;
bool r111081 = r111077 <= r111080;
double r111082 = !r111081;
bool r111083 = r111079 || r111082;
double r111084 = 3.0;
double r111085 = r111084 / r111077;
double r111086 = 3.0;
double r111087 = pow(r111077, r111086);
double r111088 = r111084 / r111087;
double r111089 = 1.0;
double r111090 = r111089 / r111077;
double r111091 = r111090 / r111077;
double r111092 = exp(r111091);
double r111093 = log(r111092);
double r111094 = r111088 + r111093;
double r111095 = r111085 + r111094;
double r111096 = -r111095;
double r111097 = 1.0;
double r111098 = r111077 + r111089;
double r111099 = r111098 / r111077;
double r111100 = r111097 / r111099;
double r111101 = r111077 - r111089;
double r111102 = r111098 / r111101;
double r111103 = r111100 - r111102;
double r111104 = r111083 ? r111096 : r111103;
return r111104;
}



Bits error versus x
Results
if x < -1781634.1039373868 or 67933.41155031513 < x Initial program 59.6
Simplified59.6
Taylor expanded around inf 0.3
Simplified0.0
rmApplied add-log-exp0.4
Simplified0.4
if -1781634.1039373868 < x < 67933.41155031513Initial program 0.1
Simplified0.1
rmApplied clear-num0.1
Final simplification0.3
herbie shell --seed 2019194
(FPCore (x)
:name "Asymptote C"
(- (/ x (+ x 1.0)) (/ (+ x 1.0) (- x 1.0))))