\frac{x}{x \cdot x + 1}\begin{array}{l}
\mathbf{if}\;x \le -2169385582642.869:\\
\;\;\;\;\left(\frac{1}{{x}^{5}} + \frac{1}{x}\right) - \frac{1}{\left(x \cdot x\right) \cdot x}\\
\mathbf{elif}\;x \le 429.5871414147981:\\
\;\;\;\;\frac{x}{\left(x \cdot x\right) \cdot \left(x \cdot x\right) - 1} \cdot \left(x \cdot x - 1\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{1}{{x}^{5}} + \frac{1}{x}\right) - \frac{1}{\left(x \cdot x\right) \cdot x}\\
\end{array}double f(double x) {
double r9630628 = x;
double r9630629 = r9630628 * r9630628;
double r9630630 = 1.0;
double r9630631 = r9630629 + r9630630;
double r9630632 = r9630628 / r9630631;
return r9630632;
}
double f(double x) {
double r9630633 = x;
double r9630634 = -2169385582642.869;
bool r9630635 = r9630633 <= r9630634;
double r9630636 = 1.0;
double r9630637 = 5.0;
double r9630638 = pow(r9630633, r9630637);
double r9630639 = r9630636 / r9630638;
double r9630640 = r9630636 / r9630633;
double r9630641 = r9630639 + r9630640;
double r9630642 = r9630633 * r9630633;
double r9630643 = r9630642 * r9630633;
double r9630644 = r9630636 / r9630643;
double r9630645 = r9630641 - r9630644;
double r9630646 = 429.5871414147981;
bool r9630647 = r9630633 <= r9630646;
double r9630648 = r9630642 * r9630642;
double r9630649 = r9630648 - r9630636;
double r9630650 = r9630633 / r9630649;
double r9630651 = r9630642 - r9630636;
double r9630652 = r9630650 * r9630651;
double r9630653 = r9630647 ? r9630652 : r9630645;
double r9630654 = r9630635 ? r9630645 : r9630653;
return r9630654;
}




Bits error versus x
Results
| Original | 15.1 |
|---|---|
| Target | 0.1 |
| Herbie | 0.0 |
if x < -2169385582642.869 or 429.5871414147981 < x Initial program 30.5
Taylor expanded around -inf 0.0
Simplified0.0
if -2169385582642.869 < x < 429.5871414147981Initial program 0.0
rmApplied flip-+0.0
Applied associate-/r/0.0
Final simplification0.0
herbie shell --seed 2019120
(FPCore (x)
:name "x / (x^2 + 1)"
:herbie-target
(/ 1 (+ x (/ 1 x)))
(/ x (+ (* x x) 1)))