\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -13977.716507512701 \lor \neg \left(x \le 10504.616557362075\right):\\
\;\;\;\;-\left(\frac{1}{x \cdot x} + \left(\frac{3}{{x}^{3}} + \frac{3}{x}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(\sqrt[3]{\mathsf{fma}\left({x}^{3}, {\left(\frac{1}{x + 1}\right)}^{3}, -{\left(x + 1\right)}^{3} \cdot {\left(\frac{1 + x}{x \cdot x - 1 \cdot 1}\right)}^{3}\right)} \cdot \sqrt[3]{\mathsf{fma}\left({x}^{3}, {\left(\frac{1}{x + 1}\right)}^{3}, -{\left(x + 1\right)}^{3} \cdot {\left(\frac{1 + x}{x \cdot x - 1 \cdot 1}\right)}^{3}\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left({x}^{3}, {\left(\frac{1}{x + 1}\right)}^{3}, -{\left(x + 1\right)}^{3} \cdot {\left(\frac{1 + x}{x \cdot x - 1 \cdot 1}\right)}^{3}\right)} + \mathsf{fma}\left(-{\left(x + 1\right)}^{3}, {\left(\frac{1 + x}{x \cdot x - 1 \cdot 1}\right)}^{3}, {\left(x + 1\right)}^{3} \cdot {\left(\frac{1 + x}{x \cdot x - 1 \cdot 1}\right)}^{3}\right)}{\mathsf{fma}\left(\frac{x}{x + 1}, \frac{x}{x + 1}, \frac{1 + x}{x - 1} \cdot \left(\frac{1 + x}{x - 1} + \frac{x}{x + 1}\right)\right)}\\
\end{array}double f(double x) {
double r132068 = x;
double r132069 = 1.0;
double r132070 = r132068 + r132069;
double r132071 = r132068 / r132070;
double r132072 = r132068 - r132069;
double r132073 = r132070 / r132072;
double r132074 = r132071 - r132073;
return r132074;
}
double f(double x) {
double r132075 = x;
double r132076 = -13977.716507512701;
bool r132077 = r132075 <= r132076;
double r132078 = 10504.616557362075;
bool r132079 = r132075 <= r132078;
double r132080 = !r132079;
bool r132081 = r132077 || r132080;
double r132082 = 1.0;
double r132083 = r132075 * r132075;
double r132084 = r132082 / r132083;
double r132085 = 3.0;
double r132086 = 3.0;
double r132087 = pow(r132075, r132086);
double r132088 = r132085 / r132087;
double r132089 = r132085 / r132075;
double r132090 = r132088 + r132089;
double r132091 = r132084 + r132090;
double r132092 = -r132091;
double r132093 = 1.0;
double r132094 = r132075 + r132082;
double r132095 = r132093 / r132094;
double r132096 = pow(r132095, r132086);
double r132097 = pow(r132094, r132086);
double r132098 = r132082 + r132075;
double r132099 = r132082 * r132082;
double r132100 = r132083 - r132099;
double r132101 = r132098 / r132100;
double r132102 = pow(r132101, r132086);
double r132103 = r132097 * r132102;
double r132104 = -r132103;
double r132105 = fma(r132087, r132096, r132104);
double r132106 = cbrt(r132105);
double r132107 = r132106 * r132106;
double r132108 = r132107 * r132106;
double r132109 = -r132097;
double r132110 = fma(r132109, r132102, r132103);
double r132111 = r132108 + r132110;
double r132112 = r132075 / r132094;
double r132113 = r132075 - r132082;
double r132114 = r132098 / r132113;
double r132115 = r132114 + r132112;
double r132116 = r132114 * r132115;
double r132117 = fma(r132112, r132112, r132116);
double r132118 = r132111 / r132117;
double r132119 = r132081 ? r132092 : r132118;
return r132119;
}



Bits error versus x
if x < -13977.716507512701 or 10504.616557362075 < x Initial program 59.0
Simplified59.0
rmApplied flip3--59.0
Simplified59.0
Taylor expanded around inf 0.4
Simplified0.0
if -13977.716507512701 < x < 10504.616557362075Initial program 0.1
Simplified0.1
rmApplied flip3--0.1
Simplified0.1
rmApplied flip--0.1
Applied associate-/r/0.1
Applied unpow-prod-down0.1
Applied div-inv0.1
Applied unpow-prod-down0.1
Applied prod-diff0.1
rmApplied add-cube-cbrt0.1
Final simplification0.1
herbie shell --seed 2019199 +o rules:numerics
(FPCore (x)
:name "Asymptote C"
(- (/ x (+ x 1.0)) (/ (+ x 1.0) (- x 1.0))))