\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -7026.080445317886:\\
\;\;\;\;\left(\frac{-3}{x} - \frac{1}{x \cdot x}\right) + \frac{\frac{-3}{x}}{x \cdot x}\\
\mathbf{elif}\;x \le 8751.46375761691:\\
\;\;\;\;\mathsf{fma}\left(\left(\frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{\sqrt[3]{1 + x} \cdot \sqrt[3]{1 + x}}\right), \left(\frac{\sqrt[3]{x}}{\sqrt[3]{1 + x}}\right), \left(-\frac{1 + x}{x - 1}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{-3}{x} - \frac{1}{x \cdot x}\right) + \frac{\frac{-3}{x}}{x \cdot x}\\
\end{array}double f(double x) {
double r33926971 = x;
double r33926972 = 1.0;
double r33926973 = r33926971 + r33926972;
double r33926974 = r33926971 / r33926973;
double r33926975 = r33926971 - r33926972;
double r33926976 = r33926973 / r33926975;
double r33926977 = r33926974 - r33926976;
return r33926977;
}
double f(double x) {
double r33926978 = x;
double r33926979 = -7026.080445317886;
bool r33926980 = r33926978 <= r33926979;
double r33926981 = -3.0;
double r33926982 = r33926981 / r33926978;
double r33926983 = 1.0;
double r33926984 = r33926978 * r33926978;
double r33926985 = r33926983 / r33926984;
double r33926986 = r33926982 - r33926985;
double r33926987 = r33926982 / r33926984;
double r33926988 = r33926986 + r33926987;
double r33926989 = 8751.46375761691;
bool r33926990 = r33926978 <= r33926989;
double r33926991 = cbrt(r33926978);
double r33926992 = r33926991 * r33926991;
double r33926993 = r33926983 + r33926978;
double r33926994 = cbrt(r33926993);
double r33926995 = r33926994 * r33926994;
double r33926996 = r33926992 / r33926995;
double r33926997 = r33926991 / r33926994;
double r33926998 = r33926978 - r33926983;
double r33926999 = r33926993 / r33926998;
double r33927000 = -r33926999;
double r33927001 = fma(r33926996, r33926997, r33927000);
double r33927002 = r33926990 ? r33927001 : r33926988;
double r33927003 = r33926980 ? r33926988 : r33927002;
return r33927003;
}



Bits error versus x
if x < -7026.080445317886 or 8751.46375761691 < x Initial program 59.4
Taylor expanded around -inf 0.3
Simplified0.0
if -7026.080445317886 < x < 8751.46375761691Initial program 0.1
rmApplied add-cube-cbrt0.1
Applied add-cube-cbrt0.1
Applied times-frac0.1
Applied fma-neg0.1
Final simplification0.1
herbie shell --seed 2019125 +o rules:numerics
(FPCore (x)
:name "Asymptote C"
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))