\frac{x}{x \cdot x + 1}\begin{array}{l}
\mathbf{if}\;x \le -2684357142190736644505600 \lor \neg \left(x \le 484.1711366885760980949271470308303833008\right):\\
\;\;\;\;\left(1 \cdot \frac{1}{{x}^{5}} + \frac{1}{x}\right) - 1 \cdot \frac{1}{{x}^{3}}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{\left(-1 \cdot 1\right) + {x}^{4}} \cdot \left(x \cdot x - 1\right)\\
\end{array}double f(double x) {
double r42715 = x;
double r42716 = r42715 * r42715;
double r42717 = 1.0;
double r42718 = r42716 + r42717;
double r42719 = r42715 / r42718;
return r42719;
}
double f(double x) {
double r42720 = x;
double r42721 = -2.6843571421907366e+24;
bool r42722 = r42720 <= r42721;
double r42723 = 484.1711366885761;
bool r42724 = r42720 <= r42723;
double r42725 = !r42724;
bool r42726 = r42722 || r42725;
double r42727 = 1.0;
double r42728 = 1.0;
double r42729 = 5.0;
double r42730 = pow(r42720, r42729);
double r42731 = r42728 / r42730;
double r42732 = r42727 * r42731;
double r42733 = r42728 / r42720;
double r42734 = r42732 + r42733;
double r42735 = 3.0;
double r42736 = pow(r42720, r42735);
double r42737 = r42728 / r42736;
double r42738 = r42727 * r42737;
double r42739 = r42734 - r42738;
double r42740 = r42727 * r42727;
double r42741 = -r42740;
double r42742 = 4.0;
double r42743 = pow(r42720, r42742);
double r42744 = r42741 + r42743;
double r42745 = r42720 / r42744;
double r42746 = r42720 * r42720;
double r42747 = r42746 - r42727;
double r42748 = r42745 * r42747;
double r42749 = r42726 ? r42739 : r42748;
return r42749;
}




Bits error versus x
Results
| Original | 15.3 |
|---|---|
| Target | 0.1 |
| Herbie | 0.0 |
if x < -2.6843571421907366e+24 or 484.1711366885761 < x Initial program 32.1
rmApplied flip-+50.0
Applied associate-/r/50.0
Simplified50.0
Taylor expanded around inf 0.0
if -2.6843571421907366e+24 < x < 484.1711366885761Initial program 0.0
rmApplied flip-+0.0
Applied associate-/r/0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019294
(FPCore (x)
:name "x / (x^2 + 1)"
:precision binary64
:herbie-target
(/ 1 (+ x (/ 1 x)))
(/ x (+ (* x x) 1)))