\frac{x}{x \cdot x + 1}\begin{array}{l}
\mathbf{if}\;x \le -7.450745238348297 \cdot 10^{+24}:\\
\;\;\;\;\left(\frac{1}{x} - \frac{1}{\left(x \cdot x\right) \cdot x}\right) + \frac{1}{{x}^{5}}\\
\mathbf{elif}\;x \le 665.7378871081933:\\
\;\;\;\;\frac{x}{1 + x \cdot x}\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{1}{x} - \frac{1}{\left(x \cdot x\right) \cdot x}\right) + \frac{1}{{x}^{5}}\\
\end{array}double f(double x) {
double r1976423 = x;
double r1976424 = r1976423 * r1976423;
double r1976425 = 1.0;
double r1976426 = r1976424 + r1976425;
double r1976427 = r1976423 / r1976426;
return r1976427;
}
double f(double x) {
double r1976428 = x;
double r1976429 = -7.450745238348297e+24;
bool r1976430 = r1976428 <= r1976429;
double r1976431 = 1.0;
double r1976432 = r1976431 / r1976428;
double r1976433 = r1976428 * r1976428;
double r1976434 = r1976433 * r1976428;
double r1976435 = r1976431 / r1976434;
double r1976436 = r1976432 - r1976435;
double r1976437 = 5.0;
double r1976438 = pow(r1976428, r1976437);
double r1976439 = r1976431 / r1976438;
double r1976440 = r1976436 + r1976439;
double r1976441 = 665.7378871081933;
bool r1976442 = r1976428 <= r1976441;
double r1976443 = r1976431 + r1976433;
double r1976444 = r1976428 / r1976443;
double r1976445 = r1976442 ? r1976444 : r1976440;
double r1976446 = r1976430 ? r1976440 : r1976445;
return r1976446;
}




Bits error versus x
Results
| Original | 14.3 |
|---|---|
| Target | 0.1 |
| Herbie | 0.0 |
if x < -7.450745238348297e+24 or 665.7378871081933 < x Initial program 30.7
Taylor expanded around inf 0.0
Simplified0.0
if -7.450745238348297e+24 < x < 665.7378871081933Initial program 0.0
Final simplification0.0
herbie shell --seed 2019158
(FPCore (x)
:name "x / (x^2 + 1)"
:herbie-target
(/ 1 (+ x (/ 1 x)))
(/ x (+ (* x x) 1)))