\frac{x}{x \cdot x + 1}\begin{array}{l}
\mathbf{if}\;x \le -7.683354923764348 \cdot 10^{+38}:\\
\;\;\;\;\left(\frac{1}{x} - \frac{\frac{\frac{1}{x}}{x}}{x}\right) + \frac{1}{{x}^{5}}\\
\mathbf{elif}\;x \le 486.478699858977:\\
\;\;\;\;\frac{x}{x \cdot x + 1}\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{1}{x} - \frac{\frac{\frac{1}{x}}{x}}{x}\right) + \frac{1}{{x}^{5}}\\
\end{array}double f(double x) {
double r2681537 = x;
double r2681538 = r2681537 * r2681537;
double r2681539 = 1.0;
double r2681540 = r2681538 + r2681539;
double r2681541 = r2681537 / r2681540;
return r2681541;
}
double f(double x) {
double r2681542 = x;
double r2681543 = -7.683354923764348e+38;
bool r2681544 = r2681542 <= r2681543;
double r2681545 = 1.0;
double r2681546 = r2681545 / r2681542;
double r2681547 = r2681546 / r2681542;
double r2681548 = r2681547 / r2681542;
double r2681549 = r2681546 - r2681548;
double r2681550 = 5.0;
double r2681551 = pow(r2681542, r2681550);
double r2681552 = r2681545 / r2681551;
double r2681553 = r2681549 + r2681552;
double r2681554 = 486.478699858977;
bool r2681555 = r2681542 <= r2681554;
double r2681556 = r2681542 * r2681542;
double r2681557 = r2681556 + r2681545;
double r2681558 = r2681542 / r2681557;
double r2681559 = r2681555 ? r2681558 : r2681553;
double r2681560 = r2681544 ? r2681553 : r2681559;
return r2681560;
}




Bits error versus x
Results
| Original | 14.6 |
|---|---|
| Target | 0.1 |
| Herbie | 0.0 |
if x < -7.683354923764348e+38 or 486.478699858977 < x Initial program 31.7
rmApplied add-sqr-sqrt31.7
Applied *-un-lft-identity31.7
Applied times-frac31.6
rmApplied pow1/231.6
Applied pow-flip31.7
Simplified31.7
Taylor expanded around inf 0.0
Simplified0.0
if -7.683354923764348e+38 < x < 486.478699858977Initial program 0.0
Final simplification0.0
herbie shell --seed 2019164
(FPCore (x)
:name "x / (x^2 + 1)"
:herbie-target
(/ 1 (+ x (/ 1 x)))
(/ x (+ (* x x) 1)))