\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -11119.68978976541075098793953657150268555 \lor \neg \left(x \le 14760.89647203507229278329759836196899414\right):\\
\;\;\;\;\left(\frac{-1}{{x}^{2}} - \frac{3}{x}\right) - \frac{3}{{x}^{3}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{{\left({\left(\frac{x}{x + 1}\right)}^{3}\right)}^{3} - {\left({\left(\frac{x + 1}{x - 1}\right)}^{3}\right)}^{3}}{\left({\left(\frac{x}{x + 1}\right)}^{6} + {\left(\frac{x + 1}{x - 1}\right)}^{6}\right) + {\left(\frac{x}{x + 1}\right)}^{3} \cdot {\left(\frac{x + 1}{x - 1}\right)}^{3}}}{\frac{x + 1}{x - 1} \cdot \left(\frac{x + 1}{x - 1} + \frac{x}{x + 1}\right) + \frac{x}{x + 1} \cdot \frac{x}{x + 1}}\\
\end{array}double f(double x) {
double r64683 = x;
double r64684 = 1.0;
double r64685 = r64683 + r64684;
double r64686 = r64683 / r64685;
double r64687 = r64683 - r64684;
double r64688 = r64685 / r64687;
double r64689 = r64686 - r64688;
return r64689;
}
double f(double x) {
double r64690 = x;
double r64691 = -11119.68978976541;
bool r64692 = r64690 <= r64691;
double r64693 = 14760.896472035072;
bool r64694 = r64690 <= r64693;
double r64695 = !r64694;
bool r64696 = r64692 || r64695;
double r64697 = 1.0;
double r64698 = -r64697;
double r64699 = 2.0;
double r64700 = pow(r64690, r64699);
double r64701 = r64698 / r64700;
double r64702 = 3.0;
double r64703 = r64702 / r64690;
double r64704 = r64701 - r64703;
double r64705 = 3.0;
double r64706 = pow(r64690, r64705);
double r64707 = r64702 / r64706;
double r64708 = r64704 - r64707;
double r64709 = r64690 + r64697;
double r64710 = r64690 / r64709;
double r64711 = pow(r64710, r64705);
double r64712 = pow(r64711, r64705);
double r64713 = r64690 - r64697;
double r64714 = r64709 / r64713;
double r64715 = pow(r64714, r64705);
double r64716 = pow(r64715, r64705);
double r64717 = r64712 - r64716;
double r64718 = 6.0;
double r64719 = pow(r64710, r64718);
double r64720 = pow(r64714, r64718);
double r64721 = r64719 + r64720;
double r64722 = r64711 * r64715;
double r64723 = r64721 + r64722;
double r64724 = r64717 / r64723;
double r64725 = r64714 + r64710;
double r64726 = r64714 * r64725;
double r64727 = r64710 * r64710;
double r64728 = r64726 + r64727;
double r64729 = r64724 / r64728;
double r64730 = r64696 ? r64708 : r64729;
return r64730;
}



Bits error versus x
Results
if x < -11119.68978976541 or 14760.896472035072 < x Initial program 59.1
Taylor expanded around inf 0.3
Simplified0.0
if -11119.68978976541 < x < 14760.896472035072Initial program 0.1
rmApplied flip3--0.1
Simplified0.1
rmApplied flip3--0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019297
(FPCore (x)
:name "Asymptote C"
:precision binary64
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))