\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -14610.34704770997814193833619356155395508 \lor \neg \left(x \le 11258.21718550441983097698539495468139648\right):\\
\;\;\;\;\left(\frac{-1}{{x}^{2}} - \frac{3}{x}\right) - \frac{3}{{x}^{3}}\\
\mathbf{else}:\\
\;\;\;\;\log \left(e^{\frac{x \cdot \left(x - 1\right) - \left(x + 1\right) \cdot \left(x + 1\right)}{x \cdot x - 1 \cdot 1}}\right)\\
\end{array}double f(double x) {
double r115056 = x;
double r115057 = 1.0;
double r115058 = r115056 + r115057;
double r115059 = r115056 / r115058;
double r115060 = r115056 - r115057;
double r115061 = r115058 / r115060;
double r115062 = r115059 - r115061;
return r115062;
}
double f(double x) {
double r115063 = x;
double r115064 = -14610.347047709978;
bool r115065 = r115063 <= r115064;
double r115066 = 11258.21718550442;
bool r115067 = r115063 <= r115066;
double r115068 = !r115067;
bool r115069 = r115065 || r115068;
double r115070 = 1.0;
double r115071 = -r115070;
double r115072 = 2.0;
double r115073 = pow(r115063, r115072);
double r115074 = r115071 / r115073;
double r115075 = 3.0;
double r115076 = r115075 / r115063;
double r115077 = r115074 - r115076;
double r115078 = 3.0;
double r115079 = pow(r115063, r115078);
double r115080 = r115075 / r115079;
double r115081 = r115077 - r115080;
double r115082 = r115063 - r115070;
double r115083 = r115063 * r115082;
double r115084 = r115063 + r115070;
double r115085 = r115084 * r115084;
double r115086 = r115083 - r115085;
double r115087 = r115063 * r115063;
double r115088 = r115070 * r115070;
double r115089 = r115087 - r115088;
double r115090 = r115086 / r115089;
double r115091 = exp(r115090);
double r115092 = log(r115091);
double r115093 = r115069 ? r115081 : r115092;
return r115093;
}



Bits error versus x
Results
if x < -14610.347047709978 or 11258.21718550442 < x Initial program 59.2
Taylor expanded around inf 0.4
Simplified0.0
if -14610.347047709978 < x < 11258.21718550442Initial program 0.1
rmApplied add-log-exp0.1
Applied add-log-exp0.1
Applied diff-log0.1
Simplified0.1
rmApplied frac-sub0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2020001
(FPCore (x)
:name "Asymptote C"
:precision binary64
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))