\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -11441.972173855373:\\
\;\;\;\;-\left(\mathsf{fma}\left(\frac{3}{x}, \frac{\frac{1}{x}}{x}, \frac{\frac{1}{x}}{x}\right) + \frac{3}{x}\right)\\
\mathbf{elif}\;x \le 12248.492747534847:\\
\;\;\;\;\mathsf{fma}\left(-\frac{1}{x - 1}, 1 + x, \left(1 + x\right) \cdot \frac{1}{x - 1}\right) + \mathsf{fma}\left(1, \frac{x}{1 + x}, \left(1 + x\right) \cdot \left(-\frac{1}{x - 1}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;-\left(\mathsf{fma}\left(\frac{3}{x}, \frac{\frac{1}{x}}{x}, \frac{\frac{1}{x}}{x}\right) + \frac{3}{x}\right)\\
\end{array}double f(double x) {
double r3190148 = x;
double r3190149 = 1.0;
double r3190150 = r3190148 + r3190149;
double r3190151 = r3190148 / r3190150;
double r3190152 = r3190148 - r3190149;
double r3190153 = r3190150 / r3190152;
double r3190154 = r3190151 - r3190153;
return r3190154;
}
double f(double x) {
double r3190155 = x;
double r3190156 = -11441.972173855373;
bool r3190157 = r3190155 <= r3190156;
double r3190158 = 3.0;
double r3190159 = r3190158 / r3190155;
double r3190160 = 1.0;
double r3190161 = r3190160 / r3190155;
double r3190162 = r3190161 / r3190155;
double r3190163 = fma(r3190159, r3190162, r3190162);
double r3190164 = r3190163 + r3190159;
double r3190165 = -r3190164;
double r3190166 = 12248.492747534847;
bool r3190167 = r3190155 <= r3190166;
double r3190168 = r3190155 - r3190160;
double r3190169 = r3190160 / r3190168;
double r3190170 = -r3190169;
double r3190171 = r3190160 + r3190155;
double r3190172 = r3190171 * r3190169;
double r3190173 = fma(r3190170, r3190171, r3190172);
double r3190174 = r3190155 / r3190171;
double r3190175 = r3190171 * r3190170;
double r3190176 = fma(r3190160, r3190174, r3190175);
double r3190177 = r3190173 + r3190176;
double r3190178 = r3190167 ? r3190177 : r3190165;
double r3190179 = r3190157 ? r3190165 : r3190178;
return r3190179;
}



Bits error versus x
if x < -11441.972173855373 or 12248.492747534847 < x Initial program 59.2
Taylor expanded around inf 0.3
Simplified0.3
Taylor expanded around 0 0.3
Simplified0.0
if -11441.972173855373 < x < 12248.492747534847Initial program 0.1
rmApplied div-inv0.1
Applied *-un-lft-identity0.1
Applied prod-diff0.1
Final simplification0.1
herbie shell --seed 2019134 +o rules:numerics
(FPCore (x)
:name "Asymptote C"
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))