\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -10364.72278293059571296907961368560791016 \lor \neg \left(x \le 12015.49448950132136815227568149566650391\right):\\
\;\;\;\;-\left(\left(\frac{1}{x \cdot x} + \frac{3}{x}\right) + \frac{3}{{x}^{3}}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\mathsf{fma}\left({\left(\frac{x}{{x}^{3} + {1}^{3}}\right)}^{3}, {\left(\mathsf{fma}\left(x, x, 1 \cdot \left(1 - x\right)\right)\right)}^{3}, \frac{{\left(x + 1\right)}^{3}}{x - 1} \cdot \frac{-1}{\left(x - 1\right) \cdot \left(x - 1\right)}\right) + \frac{{\left(x + 1\right)}^{3}}{x - 1} \cdot \left(\frac{-1}{\left(x - 1\right) \cdot \left(x - 1\right)} + \frac{1}{\left(x - 1\right) \cdot \left(x - 1\right)}\right)}{\mathsf{fma}\left(\frac{x}{1 + x}, \frac{x}{1 + x}, \mathsf{fma}\left(\frac{x + 1}{x - 1}, \frac{x + 1}{x - 1}, \frac{x}{x - 1}\right)\right)}\\
\end{array}double f(double x) {
double r94131 = x;
double r94132 = 1.0;
double r94133 = r94131 + r94132;
double r94134 = r94131 / r94133;
double r94135 = r94131 - r94132;
double r94136 = r94133 / r94135;
double r94137 = r94134 - r94136;
return r94137;
}
double f(double x) {
double r94138 = x;
double r94139 = -10364.722782930596;
bool r94140 = r94138 <= r94139;
double r94141 = 12015.494489501321;
bool r94142 = r94138 <= r94141;
double r94143 = !r94142;
bool r94144 = r94140 || r94143;
double r94145 = 1.0;
double r94146 = r94138 * r94138;
double r94147 = r94145 / r94146;
double r94148 = 3.0;
double r94149 = r94148 / r94138;
double r94150 = r94147 + r94149;
double r94151 = 3.0;
double r94152 = pow(r94138, r94151);
double r94153 = r94148 / r94152;
double r94154 = r94150 + r94153;
double r94155 = -r94154;
double r94156 = pow(r94145, r94151);
double r94157 = r94152 + r94156;
double r94158 = r94138 / r94157;
double r94159 = pow(r94158, r94151);
double r94160 = r94145 - r94138;
double r94161 = r94145 * r94160;
double r94162 = fma(r94138, r94138, r94161);
double r94163 = pow(r94162, r94151);
double r94164 = r94138 + r94145;
double r94165 = pow(r94164, r94151);
double r94166 = r94138 - r94145;
double r94167 = r94165 / r94166;
double r94168 = -1.0;
double r94169 = r94166 * r94166;
double r94170 = r94168 / r94169;
double r94171 = r94167 * r94170;
double r94172 = fma(r94159, r94163, r94171);
double r94173 = 1.0;
double r94174 = r94173 / r94169;
double r94175 = r94170 + r94174;
double r94176 = r94167 * r94175;
double r94177 = r94172 + r94176;
double r94178 = r94145 + r94138;
double r94179 = r94138 / r94178;
double r94180 = r94164 / r94166;
double r94181 = r94138 / r94166;
double r94182 = fma(r94180, r94180, r94181);
double r94183 = fma(r94179, r94179, r94182);
double r94184 = r94177 / r94183;
double r94185 = r94144 ? r94155 : r94184;
return r94185;
}



Bits error versus x
if x < -10364.722782930596 or 12015.494489501321 < x Initial program 59.2
Taylor expanded around inf 0.3
Simplified0.0
if -10364.722782930596 < x < 12015.494489501321Initial program 0.1
rmApplied flip3--0.1
Simplified0.1
rmApplied add-cube-cbrt0.2
Applied *-un-lft-identity0.2
Applied times-frac0.2
Applied unpow-prod-down0.2
Applied flip3-+0.2
Applied associate-/r/0.2
Applied unpow-prod-down0.2
Applied prod-diff0.2
Simplified0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019326 +o rules:numerics
(FPCore (x)
:name "Asymptote C"
:precision binary64
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))