\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -13167.552073147652:\\
\;\;\;\;\frac{-3}{\left(x \cdot x\right) \cdot x} - \left(\frac{3}{x} + \frac{1}{x \cdot x}\right)\\
\mathbf{elif}\;x \le 12311.34325898398:\\
\;\;\;\;\mathsf{fma}\left(\frac{-1}{x - 1}, x + 1, \left(x + 1\right) \cdot \frac{1}{x - 1}\right) + \mathsf{fma}\left(x, \frac{1}{x + 1}, \frac{-\mathsf{fma}\left(x, x, -1\right)}{\left(x - 1\right) \cdot \left(x - 1\right)}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{-3}{\left(x \cdot x\right) \cdot x} - \left(\frac{3}{x} + \frac{1}{x \cdot x}\right)\\
\end{array}double f(double x) {
double r3915459 = x;
double r3915460 = 1.0;
double r3915461 = r3915459 + r3915460;
double r3915462 = r3915459 / r3915461;
double r3915463 = r3915459 - r3915460;
double r3915464 = r3915461 / r3915463;
double r3915465 = r3915462 - r3915464;
return r3915465;
}
double f(double x) {
double r3915466 = x;
double r3915467 = -13167.552073147652;
bool r3915468 = r3915466 <= r3915467;
double r3915469 = -3.0;
double r3915470 = r3915466 * r3915466;
double r3915471 = r3915470 * r3915466;
double r3915472 = r3915469 / r3915471;
double r3915473 = 3.0;
double r3915474 = r3915473 / r3915466;
double r3915475 = 1.0;
double r3915476 = r3915475 / r3915470;
double r3915477 = r3915474 + r3915476;
double r3915478 = r3915472 - r3915477;
double r3915479 = 12311.34325898398;
bool r3915480 = r3915466 <= r3915479;
double r3915481 = -1.0;
double r3915482 = r3915466 - r3915475;
double r3915483 = r3915481 / r3915482;
double r3915484 = r3915466 + r3915475;
double r3915485 = r3915475 / r3915482;
double r3915486 = r3915484 * r3915485;
double r3915487 = fma(r3915483, r3915484, r3915486);
double r3915488 = r3915475 / r3915484;
double r3915489 = fma(r3915466, r3915466, r3915481);
double r3915490 = -r3915489;
double r3915491 = r3915482 * r3915482;
double r3915492 = r3915490 / r3915491;
double r3915493 = fma(r3915466, r3915488, r3915492);
double r3915494 = r3915487 + r3915493;
double r3915495 = r3915480 ? r3915494 : r3915478;
double r3915496 = r3915468 ? r3915478 : r3915495;
return r3915496;
}



Bits error versus x
if x < -13167.552073147652 or 12311.34325898398 < x Initial program 59.1
Taylor expanded around -inf 0.4
Simplified0.0
if -13167.552073147652 < x < 12311.34325898398Initial program 0.1
rmApplied div-inv0.1
Applied div-inv0.1
Applied prod-diff0.1
rmApplied flip-+0.1
Applied frac-times0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019151 +o rules:numerics
(FPCore (x)
:name "Asymptote C"
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))