\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -12923.888472784707 \lor \neg \left(x \le 9184.4228150724193\right):\\
\;\;\;\;\left(\frac{-1}{{x}^{2}} - \frac{3}{x}\right) - \frac{3}{{x}^{3}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\left(x \cdot x\right) \cdot \left(\left(x \cdot x + \left(1 \cdot 1 - x \cdot 1\right)\right) \cdot \left(x - 1\right)\right) - \left(\left(x + 1\right) \cdot \left(x + 1\right)\right) \cdot \left(\left({x}^{3} + {1}^{3}\right) \cdot \frac{x + 1}{x - 1}\right)}{\left(\left(x - 1\right) \cdot \left(1 \cdot \left(1 - x\right) + {x}^{2}\right)\right) \cdot \left(\left(x + 1\right) \cdot \left(x + 1\right)\right)}}{\frac{x}{x + 1} + \frac{x + 1}{x - 1}}\\
\end{array}double f(double x) {
double r134555 = x;
double r134556 = 1.0;
double r134557 = r134555 + r134556;
double r134558 = r134555 / r134557;
double r134559 = r134555 - r134556;
double r134560 = r134557 / r134559;
double r134561 = r134558 - r134560;
return r134561;
}
double f(double x) {
double r134562 = x;
double r134563 = -12923.888472784707;
bool r134564 = r134562 <= r134563;
double r134565 = 9184.42281507242;
bool r134566 = r134562 <= r134565;
double r134567 = !r134566;
bool r134568 = r134564 || r134567;
double r134569 = 1.0;
double r134570 = -r134569;
double r134571 = 2.0;
double r134572 = pow(r134562, r134571);
double r134573 = r134570 / r134572;
double r134574 = 3.0;
double r134575 = r134574 / r134562;
double r134576 = r134573 - r134575;
double r134577 = 3.0;
double r134578 = pow(r134562, r134577);
double r134579 = r134574 / r134578;
double r134580 = r134576 - r134579;
double r134581 = r134562 * r134562;
double r134582 = r134569 * r134569;
double r134583 = r134562 * r134569;
double r134584 = r134582 - r134583;
double r134585 = r134581 + r134584;
double r134586 = r134562 - r134569;
double r134587 = r134585 * r134586;
double r134588 = r134581 * r134587;
double r134589 = r134562 + r134569;
double r134590 = r134589 * r134589;
double r134591 = pow(r134569, r134577);
double r134592 = r134578 + r134591;
double r134593 = r134589 / r134586;
double r134594 = r134592 * r134593;
double r134595 = r134590 * r134594;
double r134596 = r134588 - r134595;
double r134597 = r134569 - r134562;
double r134598 = r134569 * r134597;
double r134599 = r134598 + r134572;
double r134600 = r134586 * r134599;
double r134601 = r134600 * r134590;
double r134602 = r134596 / r134601;
double r134603 = r134562 / r134589;
double r134604 = r134603 + r134593;
double r134605 = r134602 / r134604;
double r134606 = r134568 ? r134580 : r134605;
return r134606;
}



Bits error versus x
Results
if x < -12923.888472784707 or 9184.42281507242 < x Initial program 59.2
Taylor expanded around inf 0.3
Simplified0.0
if -12923.888472784707 < x < 9184.42281507242Initial program 0.1
rmApplied flip--0.1
rmApplied *-un-lft-identity0.1
Applied add-sqr-sqrt0.5
Applied times-frac0.5
Applied *-un-lft-identity0.5
Applied add-sqr-sqrt0.6
Applied times-frac0.6
Applied swap-sqr0.6
Simplified0.5
Simplified0.1
rmApplied flip3-+0.1
Applied frac-times0.1
Applied frac-times0.1
Applied frac-sub0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2020064
(FPCore (x)
:name "Asymptote C"
:precision binary64
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))