\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -0.9941877870754349810766825612518005073071 \lor \neg \left(x \le 7392.742446615246080909855663776397705078\right):\\
\;\;\;\;\left(-\frac{1}{x \cdot x}\right) - \left(\frac{3}{{x}^{3}} + \frac{3}{x}\right)\\
\mathbf{else}:\\
\;\;\;\;\log \left(e^{\frac{x}{x + 1}}\right) - \frac{\sqrt{1 + x}}{\sqrt[3]{x - 1} \cdot \sqrt[3]{x - 1}} \cdot \frac{\sqrt{1 + x}}{\sqrt[3]{x - 1}}\\
\end{array}double f(double x) {
double r120846 = x;
double r120847 = 1.0;
double r120848 = r120846 + r120847;
double r120849 = r120846 / r120848;
double r120850 = r120846 - r120847;
double r120851 = r120848 / r120850;
double r120852 = r120849 - r120851;
return r120852;
}
double f(double x) {
double r120853 = x;
double r120854 = -0.994187787075435;
bool r120855 = r120853 <= r120854;
double r120856 = 7392.742446615246;
bool r120857 = r120853 <= r120856;
double r120858 = !r120857;
bool r120859 = r120855 || r120858;
double r120860 = 1.0;
double r120861 = r120853 * r120853;
double r120862 = r120860 / r120861;
double r120863 = -r120862;
double r120864 = 3.0;
double r120865 = 3.0;
double r120866 = pow(r120853, r120865);
double r120867 = r120864 / r120866;
double r120868 = r120864 / r120853;
double r120869 = r120867 + r120868;
double r120870 = r120863 - r120869;
double r120871 = r120853 + r120860;
double r120872 = r120853 / r120871;
double r120873 = exp(r120872);
double r120874 = log(r120873);
double r120875 = r120860 + r120853;
double r120876 = sqrt(r120875);
double r120877 = r120853 - r120860;
double r120878 = cbrt(r120877);
double r120879 = r120878 * r120878;
double r120880 = r120876 / r120879;
double r120881 = r120876 / r120878;
double r120882 = r120880 * r120881;
double r120883 = r120874 - r120882;
double r120884 = r120859 ? r120870 : r120883;
return r120884;
}



Bits error versus x
Results
if x < -0.994187787075435 or 7392.742446615246 < x Initial program 58.8
Simplified58.8
Taylor expanded around inf 0.6
Simplified0.3
if -0.994187787075435 < x < 7392.742446615246Initial program 0.0
Simplified0.0
rmApplied add-log-exp0.0
rmApplied add-cube-cbrt0.1
Applied add-sqr-sqrt0.1
Applied times-frac0.1
Final simplification0.2
herbie shell --seed 2019212 +o rules:numerics
(FPCore (x)
:name "Asymptote C"
:precision binary64
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))