\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -121810688.584929809:\\
\;\;\;\;\left(\frac{-3}{x} + \frac{1}{{x}^{2}}\right) + \frac{x + 1}{x \cdot x - 1 \cdot 1} \cdot \left(\left(-\left(x + 1\right)\right) + \left(x + 1\right)\right)\\
\mathbf{elif}\;x \le 12712.5671000054735:\\
\;\;\;\;\mathsf{fma}\left(\frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{1}, \frac{\sqrt[3]{x}}{x + 1}, -\frac{x + 1}{x - 1}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{-1}{{x}^{2}} - \mathsf{fma}\left(3, \frac{1}{x}, 3 \cdot \frac{1}{{x}^{3}}\right)\\
\end{array}double f(double x) {
double r150174 = x;
double r150175 = 1.0;
double r150176 = r150174 + r150175;
double r150177 = r150174 / r150176;
double r150178 = r150174 - r150175;
double r150179 = r150176 / r150178;
double r150180 = r150177 - r150179;
return r150180;
}
double f(double x) {
double r150181 = x;
double r150182 = -121810688.58492981;
bool r150183 = r150181 <= r150182;
double r150184 = 3.0;
double r150185 = -r150184;
double r150186 = r150185 / r150181;
double r150187 = 1.0;
double r150188 = 2.0;
double r150189 = pow(r150181, r150188);
double r150190 = r150187 / r150189;
double r150191 = r150186 + r150190;
double r150192 = r150181 + r150187;
double r150193 = r150181 * r150181;
double r150194 = r150187 * r150187;
double r150195 = r150193 - r150194;
double r150196 = r150192 / r150195;
double r150197 = -r150192;
double r150198 = r150197 + r150192;
double r150199 = r150196 * r150198;
double r150200 = r150191 + r150199;
double r150201 = 12712.567100005474;
bool r150202 = r150181 <= r150201;
double r150203 = cbrt(r150181);
double r150204 = r150203 * r150203;
double r150205 = 1.0;
double r150206 = r150204 / r150205;
double r150207 = r150203 / r150192;
double r150208 = r150181 - r150187;
double r150209 = r150192 / r150208;
double r150210 = -r150209;
double r150211 = fma(r150206, r150207, r150210);
double r150212 = -r150187;
double r150213 = r150212 / r150189;
double r150214 = r150205 / r150181;
double r150215 = 3.0;
double r150216 = pow(r150181, r150215);
double r150217 = r150205 / r150216;
double r150218 = r150184 * r150217;
double r150219 = fma(r150184, r150214, r150218);
double r150220 = r150213 - r150219;
double r150221 = r150202 ? r150211 : r150220;
double r150222 = r150183 ? r150200 : r150221;
return r150222;
}



Bits error versus x
if x < -121810688.58492981Initial program 59.7
rmApplied flip--60.8
Applied associate-/r/60.6
Applied add-cube-cbrt60.8
Applied *-un-lft-identity60.8
Applied times-frac60.9
Applied prod-diff60.8
Simplified60.8
Taylor expanded around inf 0.7
Simplified0.4
if -121810688.58492981 < x < 12712.567100005474Initial program 0.1
rmApplied *-un-lft-identity0.1
Applied add-cube-cbrt0.2
Applied times-frac0.2
Applied fma-neg0.2
if 12712.567100005474 < x Initial program 59.1
Taylor expanded around inf 0.4
Simplified0.4
Final simplification0.3
herbie shell --seed 2020036 +o rules:numerics
(FPCore (x)
:name "Asymptote C"
:precision binary64
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))