\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -8945.723433831723:\\
\;\;\;\;\frac{-1}{x \cdot x} + \left(\frac{-1}{x} + \frac{\frac{-1}{x}}{x \cdot x}\right) \cdot 3\\
\mathbf{elif}\;x \le 12128.14810712757:\\
\;\;\;\;\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}:\\
\;\;\;\;\frac{-1}{x \cdot x} + \left(\frac{-1}{x} + \frac{\frac{-1}{x}}{x \cdot x}\right) \cdot 3\\
\end{array}double f(double x) {
double r33301187 = x;
double r33301188 = 1.0;
double r33301189 = r33301187 + r33301188;
double r33301190 = r33301187 / r33301189;
double r33301191 = r33301187 - r33301188;
double r33301192 = r33301189 / r33301191;
double r33301193 = r33301190 - r33301192;
return r33301193;
}
double f(double x) {
double r33301194 = x;
double r33301195 = -8945.723433831723;
bool r33301196 = r33301194 <= r33301195;
double r33301197 = -1.0;
double r33301198 = r33301194 * r33301194;
double r33301199 = r33301197 / r33301198;
double r33301200 = r33301197 / r33301194;
double r33301201 = r33301200 / r33301198;
double r33301202 = r33301200 + r33301201;
double r33301203 = 3.0;
double r33301204 = r33301202 * r33301203;
double r33301205 = r33301199 + r33301204;
double r33301206 = 12128.14810712757;
bool r33301207 = r33301194 <= r33301206;
double r33301208 = cbrt(r33301194);
double r33301209 = r33301208 * r33301208;
double r33301210 = 1.0;
double r33301211 = r33301210 + r33301194;
double r33301212 = cbrt(r33301211);
double r33301213 = r33301212 * r33301212;
double r33301214 = r33301209 / r33301213;
double r33301215 = r33301208 / r33301212;
double r33301216 = r33301194 - r33301210;
double r33301217 = r33301211 / r33301216;
double r33301218 = -r33301217;
double r33301219 = fma(r33301214, r33301215, r33301218);
double r33301220 = r33301207 ? r33301219 : r33301205;
double r33301221 = r33301196 ? r33301205 : r33301220;
return r33301221;
}



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