\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -12879.754469549705 \lor \neg \left(x \le 12427.129501950301\right):\\
\;\;\;\;\mathsf{fma}\left(-1, \frac{\frac{1}{x}}{x}, \frac{-3}{x}\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 r122653 = x;
double r122654 = 1.0;
double r122655 = r122653 + r122654;
double r122656 = r122653 / r122655;
double r122657 = r122653 - r122654;
double r122658 = r122655 / r122657;
double r122659 = r122656 - r122658;
return r122659;
}
double f(double x) {
double r122660 = x;
double r122661 = -12879.754469549705;
bool r122662 = r122660 <= r122661;
double r122663 = 12427.129501950301;
bool r122664 = r122660 <= r122663;
double r122665 = !r122664;
bool r122666 = r122662 || r122665;
double r122667 = -1.0;
double r122668 = 1.0;
double r122669 = r122668 / r122660;
double r122670 = r122669 / r122660;
double r122671 = 3.0;
double r122672 = -r122671;
double r122673 = r122672 / r122660;
double r122674 = fma(r122667, r122670, r122673);
double r122675 = 1.0;
double r122676 = 3.0;
double r122677 = pow(r122660, r122676);
double r122678 = r122675 / r122677;
double r122679 = r122671 * r122678;
double r122680 = r122674 - r122679;
double r122681 = r122660 - r122668;
double r122682 = r122660 * r122681;
double r122683 = r122660 + r122668;
double r122684 = r122683 * r122683;
double r122685 = r122682 - r122684;
double r122686 = r122660 * r122660;
double r122687 = r122668 * r122668;
double r122688 = r122686 - r122687;
double r122689 = r122685 / r122688;
double r122690 = r122666 ? r122680 : r122689;
return r122690;
}



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