\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 r4519081 = x;
double r4519082 = r4519081 * r4519081;
double r4519083 = 1.0;
double r4519084 = r4519082 + r4519083;
double r4519085 = r4519081 / r4519084;
return r4519085;
}
double f(double x) {
double r4519086 = x;
double r4519087 = -7.450745238348297e+24;
bool r4519088 = r4519086 <= r4519087;
double r4519089 = 1.0;
double r4519090 = r4519089 / r4519086;
double r4519091 = r4519086 * r4519086;
double r4519092 = r4519091 * r4519086;
double r4519093 = r4519089 / r4519092;
double r4519094 = r4519090 - r4519093;
double r4519095 = 5.0;
double r4519096 = pow(r4519086, r4519095);
double r4519097 = r4519089 / r4519096;
double r4519098 = r4519094 + r4519097;
double r4519099 = 665.7378871081933;
bool r4519100 = r4519086 <= r4519099;
double r4519101 = r4519089 + r4519091;
double r4519102 = r4519086 / r4519101;
double r4519103 = r4519100 ? r4519102 : r4519098;
double r4519104 = r4519088 ? r4519098 : r4519103;
return r4519104;
}




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)))