\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -12354.188123908416:\\
\;\;\;\;-\left(\frac{1}{x \cdot x} + \mathsf{fma}\left(\frac{1}{x \cdot x}, \frac{3}{x}, \frac{3}{x}\right)\right)\\
\mathbf{elif}\;x \le 11033.995023478727:\\
\;\;\;\;\mathsf{fma}\left(\frac{1 + x}{x + -1}, -1, \frac{1 + x}{x + -1}\right) + \mathsf{fma}\left(\frac{x}{\mathsf{fma}\left(x, x \cdot x, 1\right)}, \mathsf{fma}\left(x, x, 1\right) - x, -\frac{1 + x}{x + -1}\right)\\
\mathbf{else}:\\
\;\;\;\;-\left(\frac{1}{x \cdot x} + \mathsf{fma}\left(\frac{1}{x \cdot x}, \frac{3}{x}, \frac{3}{x}\right)\right)\\
\end{array}double f(double x) {
double r5001938 = x;
double r5001939 = 1.0;
double r5001940 = r5001938 + r5001939;
double r5001941 = r5001938 / r5001940;
double r5001942 = r5001938 - r5001939;
double r5001943 = r5001940 / r5001942;
double r5001944 = r5001941 - r5001943;
return r5001944;
}
double f(double x) {
double r5001945 = x;
double r5001946 = -12354.188123908416;
bool r5001947 = r5001945 <= r5001946;
double r5001948 = 1.0;
double r5001949 = r5001945 * r5001945;
double r5001950 = r5001948 / r5001949;
double r5001951 = 3.0;
double r5001952 = r5001951 / r5001945;
double r5001953 = fma(r5001950, r5001952, r5001952);
double r5001954 = r5001950 + r5001953;
double r5001955 = -r5001954;
double r5001956 = 11033.995023478727;
bool r5001957 = r5001945 <= r5001956;
double r5001958 = r5001948 + r5001945;
double r5001959 = -1.0;
double r5001960 = r5001945 + r5001959;
double r5001961 = r5001958 / r5001960;
double r5001962 = fma(r5001961, r5001959, r5001961);
double r5001963 = fma(r5001945, r5001949, r5001948);
double r5001964 = r5001945 / r5001963;
double r5001965 = fma(r5001945, r5001945, r5001948);
double r5001966 = r5001965 - r5001945;
double r5001967 = -r5001961;
double r5001968 = fma(r5001964, r5001966, r5001967);
double r5001969 = r5001962 + r5001968;
double r5001970 = r5001957 ? r5001969 : r5001955;
double r5001971 = r5001947 ? r5001955 : r5001970;
return r5001971;
}



Bits error versus x
if x < -12354.188123908416 or 11033.995023478727 < x Initial program 59.2
rmApplied div-inv59.4
Applied fma-neg60.1
Taylor expanded around inf 0.3
Simplified0.0
if -12354.188123908416 < x < 11033.995023478727Initial program 0.1
rmApplied *-un-lft-identity0.1
Applied associate-/r*0.1
rmApplied add-cube-cbrt0.1
Applied flip3-+0.1
Applied associate-/r/0.1
Applied prod-diff0.1
Simplified0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019163 +o rules:numerics
(FPCore (x)
:name "Asymptote C"
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))