\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -139705646.1415683:\\
\;\;\;\;\frac{1}{x \cdot x} + \frac{-3}{x}\\
\mathbf{elif}\;x \le 18902.749445282407:\\
\;\;\;\;\mathsf{fma}\left(\left(\frac{x}{\mathsf{fma}\left(x, \left(x \cdot x\right), 1\right)}\right), \left(x \cdot x + \left(1 - x\right)\right), \left(-\frac{1 + x}{x - 1}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(3, \left(\frac{\frac{-1}{x}}{x \cdot x} + \frac{-1}{x}\right), \left(\frac{-1}{x \cdot x}\right)\right)\\
\end{array}double f(double x) {
double r18523600 = x;
double r18523601 = 1.0;
double r18523602 = r18523600 + r18523601;
double r18523603 = r18523600 / r18523602;
double r18523604 = r18523600 - r18523601;
double r18523605 = r18523602 / r18523604;
double r18523606 = r18523603 - r18523605;
return r18523606;
}
double f(double x) {
double r18523607 = x;
double r18523608 = -139705646.1415683;
bool r18523609 = r18523607 <= r18523608;
double r18523610 = 1.0;
double r18523611 = r18523607 * r18523607;
double r18523612 = r18523610 / r18523611;
double r18523613 = -3.0;
double r18523614 = r18523613 / r18523607;
double r18523615 = r18523612 + r18523614;
double r18523616 = 18902.749445282407;
bool r18523617 = r18523607 <= r18523616;
double r18523618 = fma(r18523607, r18523611, r18523610);
double r18523619 = r18523607 / r18523618;
double r18523620 = r18523610 - r18523607;
double r18523621 = r18523611 + r18523620;
double r18523622 = r18523610 + r18523607;
double r18523623 = r18523607 - r18523610;
double r18523624 = r18523622 / r18523623;
double r18523625 = -r18523624;
double r18523626 = fma(r18523619, r18523621, r18523625);
double r18523627 = 3.0;
double r18523628 = -1.0;
double r18523629 = r18523628 / r18523607;
double r18523630 = r18523629 / r18523611;
double r18523631 = r18523630 + r18523629;
double r18523632 = r18523628 / r18523611;
double r18523633 = fma(r18523627, r18523631, r18523632);
double r18523634 = r18523617 ? r18523626 : r18523633;
double r18523635 = r18523609 ? r18523615 : r18523634;
return r18523635;
}



Bits error versus x
if x < -139705646.1415683Initial program 59.8
rmApplied div-inv59.8
Applied add-cube-cbrt60.8
Applied *-un-lft-identity60.8
Applied times-frac60.8
Applied prod-diff61.0
Simplified60.9
rmApplied add-cbrt-cube60.9
Taylor expanded around inf 0.7
Simplified0.4
if -139705646.1415683 < x < 18902.749445282407Initial program 0.2
rmApplied flip3-+0.2
Applied associate-/r/0.2
Applied fma-neg0.2
Simplified0.2
if 18902.749445282407 < x Initial program 59.2
rmApplied flip3-+60.9
Applied associate-/r/60.7
Applied fma-neg60.7
Simplified60.6
Taylor expanded around inf 0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2019120 +o rules:numerics
(FPCore (x)
:name "Asymptote C"
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))