\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -10587.250289808897 \lor \neg \left(x \le 11866.5124804357783\right):\\
\;\;\;\;\left(\frac{-1}{{x}^{2}} - \frac{3}{x}\right) - \frac{3}{{x}^{3}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\log \left(e^{\frac{\left(x \cdot x\right) \cdot x}{\left(\left(x + 1\right) \cdot \left(x + 1\right)\right) \cdot \left(x + 1\right)} - {\left(\frac{x + 1}{x - 1}\right)}^{3}}\right)}{\frac{x + 1}{x - 1} \cdot \left(\frac{x + 1}{x - 1} + \frac{x}{x + 1}\right) + \frac{x}{x + 1} \cdot \frac{x}{x + 1}}\\
\end{array}double f(double x) {
double r121505 = x;
double r121506 = 1.0;
double r121507 = r121505 + r121506;
double r121508 = r121505 / r121507;
double r121509 = r121505 - r121506;
double r121510 = r121507 / r121509;
double r121511 = r121508 - r121510;
return r121511;
}
double f(double x) {
double r121512 = x;
double r121513 = -10587.250289808897;
bool r121514 = r121512 <= r121513;
double r121515 = 11866.512480435778;
bool r121516 = r121512 <= r121515;
double r121517 = !r121516;
bool r121518 = r121514 || r121517;
double r121519 = 1.0;
double r121520 = -r121519;
double r121521 = 2.0;
double r121522 = pow(r121512, r121521);
double r121523 = r121520 / r121522;
double r121524 = 3.0;
double r121525 = r121524 / r121512;
double r121526 = r121523 - r121525;
double r121527 = 3.0;
double r121528 = pow(r121512, r121527);
double r121529 = r121524 / r121528;
double r121530 = r121526 - r121529;
double r121531 = r121512 * r121512;
double r121532 = r121531 * r121512;
double r121533 = r121512 + r121519;
double r121534 = r121533 * r121533;
double r121535 = r121534 * r121533;
double r121536 = r121532 / r121535;
double r121537 = r121512 - r121519;
double r121538 = r121533 / r121537;
double r121539 = pow(r121538, r121527);
double r121540 = r121536 - r121539;
double r121541 = exp(r121540);
double r121542 = log(r121541);
double r121543 = r121512 / r121533;
double r121544 = r121538 + r121543;
double r121545 = r121538 * r121544;
double r121546 = r121543 * r121543;
double r121547 = r121545 + r121546;
double r121548 = r121542 / r121547;
double r121549 = r121518 ? r121530 : r121548;
return r121549;
}



Bits error versus x
Results
if x < -10587.250289808897 or 11866.512480435778 < x Initial program 59.2
Taylor expanded around inf 0.3
Simplified0.0
if -10587.250289808897 < x < 11866.512480435778Initial program 0.1
rmApplied flip3--0.1
Simplified0.1
rmApplied add-log-exp0.1
Applied add-log-exp0.1
Applied diff-log0.1
Simplified0.1
rmApplied add-cbrt-cube0.1
Applied add-cbrt-cube0.1
Applied cbrt-undiv0.1
Applied rem-cube-cbrt0.1
Final simplification0.1
herbie shell --seed 2020027
(FPCore (x)
:name "Asymptote C"
:precision binary64
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))