\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -19531.3574826783042 \lor \neg \left(x \le 11598.163947811103\right):\\
\;\;\;\;\left(-\left(\frac{1}{{x}^{2}} + \frac{3}{x}\right)\right) - 3 \cdot \frac{1}{{x}^{3}}\\
\mathbf{else}:\\
\;\;\;\;\frac{x \cdot \left(x - 1\right) - \left(x + 1\right) \cdot \left(x + 1\right)}{x \cdot x - 1 \cdot 1}\\
\end{array}double f(double x) {
double r120053 = x;
double r120054 = 1.0;
double r120055 = r120053 + r120054;
double r120056 = r120053 / r120055;
double r120057 = r120053 - r120054;
double r120058 = r120055 / r120057;
double r120059 = r120056 - r120058;
return r120059;
}
double f(double x) {
double r120060 = x;
double r120061 = -19531.357482678304;
bool r120062 = r120060 <= r120061;
double r120063 = 11598.163947811103;
bool r120064 = r120060 <= r120063;
double r120065 = !r120064;
bool r120066 = r120062 || r120065;
double r120067 = 1.0;
double r120068 = 2.0;
double r120069 = pow(r120060, r120068);
double r120070 = r120067 / r120069;
double r120071 = 3.0;
double r120072 = r120071 / r120060;
double r120073 = r120070 + r120072;
double r120074 = -r120073;
double r120075 = 1.0;
double r120076 = 3.0;
double r120077 = pow(r120060, r120076);
double r120078 = r120075 / r120077;
double r120079 = r120071 * r120078;
double r120080 = r120074 - r120079;
double r120081 = r120060 - r120067;
double r120082 = r120060 * r120081;
double r120083 = r120060 + r120067;
double r120084 = r120083 * r120083;
double r120085 = r120082 - r120084;
double r120086 = r120060 * r120060;
double r120087 = r120067 * r120067;
double r120088 = r120086 - r120087;
double r120089 = r120085 / r120088;
double r120090 = r120066 ? r120080 : r120089;
return r120090;
}



Bits error versus x
Results
if x < -19531.357482678304 or 11598.163947811103 < x Initial program 59.3
Taylor expanded around inf 0.3
Simplified0.3
rmApplied fma-udef0.3
Applied associate--r+0.3
Simplified0.0
if -19531.357482678304 < x < 11598.163947811103Initial program 0.1
rmApplied frac-sub0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2020062 +o rules:numerics
(FPCore (x)
:name "Asymptote C"
:precision binary64
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))