\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -11077.767521343081 \lor \neg \left(x \le 11856.138291033363\right):\\
\;\;\;\;\frac{-1}{{x}^{2}} - \left(\frac{3}{x} + 3 \cdot \frac{1}{{x}^{3}}\right)\\
\mathbf{else}:\\
\;\;\;\;\sqrt[3]{{\left(\mathsf{fma}\left(\frac{x}{x \cdot x - 1 \cdot 1}, x - 1, -\left(x + 1\right) \cdot \frac{x + 1}{x \cdot x - 1 \cdot 1}\right)\right)}^{3}} + \frac{x + 1}{x \cdot x - 1 \cdot 1} \cdot \left(\left(-\left(x + 1\right)\right) + \left(x + 1\right)\right)\\
\end{array}double f(double x) {
double r119019 = x;
double r119020 = 1.0;
double r119021 = r119019 + r119020;
double r119022 = r119019 / r119021;
double r119023 = r119019 - r119020;
double r119024 = r119021 / r119023;
double r119025 = r119022 - r119024;
return r119025;
}
double f(double x) {
double r119026 = x;
double r119027 = -11077.767521343081;
bool r119028 = r119026 <= r119027;
double r119029 = 11856.138291033363;
bool r119030 = r119026 <= r119029;
double r119031 = !r119030;
bool r119032 = r119028 || r119031;
double r119033 = 1.0;
double r119034 = -r119033;
double r119035 = 2.0;
double r119036 = pow(r119026, r119035);
double r119037 = r119034 / r119036;
double r119038 = 3.0;
double r119039 = r119038 / r119026;
double r119040 = 1.0;
double r119041 = 3.0;
double r119042 = pow(r119026, r119041);
double r119043 = r119040 / r119042;
double r119044 = r119038 * r119043;
double r119045 = r119039 + r119044;
double r119046 = r119037 - r119045;
double r119047 = r119026 * r119026;
double r119048 = r119033 * r119033;
double r119049 = r119047 - r119048;
double r119050 = r119026 / r119049;
double r119051 = r119026 - r119033;
double r119052 = r119026 + r119033;
double r119053 = r119052 / r119049;
double r119054 = r119052 * r119053;
double r119055 = -r119054;
double r119056 = fma(r119050, r119051, r119055);
double r119057 = pow(r119056, r119041);
double r119058 = cbrt(r119057);
double r119059 = -r119052;
double r119060 = r119059 + r119052;
double r119061 = r119053 * r119060;
double r119062 = r119058 + r119061;
double r119063 = r119032 ? r119046 : r119062;
return r119063;
}



Bits error versus x
if x < -11077.767521343081 or 11856.138291033363 < x Initial program 59.4
Taylor expanded around inf 0.3
Simplified0.3
rmApplied fma-udef0.3
Simplified0.0
if -11077.767521343081 < x < 11856.138291033363Initial program 0.1
rmApplied flip--0.1
Applied associate-/r/0.1
Applied flip-+0.1
Applied associate-/r/0.1
Applied prod-diff0.1
Simplified0.1
rmApplied add-cbrt-cube0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2020089 +o rules:numerics
(FPCore (x)
:name "Asymptote C"
:precision binary64
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))