double f(double x) {
double r31021527 = x;
double r31021528 = 1.0;
double r31021529 = r31021527 + r31021528;
double r31021530 = r31021527 / r31021529;
double r31021531 = r31021527 - r31021528;
double r31021532 = r31021529 / r31021531;
double r31021533 = r31021530 - r31021532;
return r31021533;
}
double f(double x) {
double r31021534 = x;
double r31021535 = -10413.947063155647;
bool r31021536 = r31021534 <= r31021535;
double r31021537 = -1.0;
double r31021538 = r31021534 * r31021534;
double r31021539 = r31021537 / r31021538;
double r31021540 = -3.0;
double r31021541 = r31021540 / r31021534;
double r31021542 = r31021538 * r31021534;
double r31021543 = r31021540 / r31021542;
double r31021544 = r31021541 + r31021543;
double r31021545 = r31021539 + r31021544;
double r31021546 = 17807.632519573774;
bool r31021547 = r31021534 <= r31021546;
double r31021548 = 1.0;
double r31021549 = 3.0;
double r31021550 = pow(r31021534, r31021549);
double r31021551 = r31021548 + r31021550;
double r31021552 = r31021534 / r31021551;
double r31021553 = r31021548 - r31021534;
double r31021554 = r31021538 + r31021553;
double r31021555 = r31021548 + r31021534;
double r31021556 = r31021550 - r31021548;
double r31021557 = r31021555 / r31021556;
double r31021558 = r31021555 + r31021538;
double r31021559 = -r31021558;
double r31021560 = r31021557 * r31021559;
double r31021561 = fma(r31021552, r31021554, r31021560);
double r31021562 = r31021547 ? r31021561 : r31021545;
double r31021563 = r31021536 ? r31021545 : r31021562;
return r31021563;
}
\frac{x}{x + 1} - \frac{x + 1}{x - 1}\begin{array}{l}
\mathbf{if}\;x \le -10413.947063155647:\\
\;\;\;\;\frac{-1}{x \cdot x} + \left(\frac{-3}{x} + \frac{-3}{\left(x \cdot x\right) \cdot x}\right)\\
\mathbf{elif}\;x \le 17807.632519573774:\\
\;\;\;\;(\left(\frac{x}{1 + {x}^{3}}\right) \cdot \left(x \cdot x + \left(1 - x\right)\right) + \left(\frac{1 + x}{{x}^{3} - 1} \cdot \left(-\left(\left(1 + x\right) + x \cdot x\right)\right)\right))_*\\
\mathbf{else}:\\
\;\;\;\;\frac{-1}{x \cdot x} + \left(\frac{-3}{x} + \frac{-3}{\left(x \cdot x\right) \cdot x}\right)\\
\end{array}


Bits error versus x
if x < -10413.947063155647 or 17807.632519573774 < x Initial program 59.4
Taylor expanded around -inf 0.3
Simplified0.3
rmApplied fma-udef0.3
Taylor expanded around -inf 0.3
Simplified0.0
if -10413.947063155647 < x < 17807.632519573774Initial program 0.1
rmApplied flip3--0.1
Applied associate-/r/0.1
Applied flip3-+0.1
Applied associate-/r/0.1
Applied prod-diff0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019101 +o rules:numerics
(FPCore (x)
:name "Asymptote C"
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))