\frac{x}{x \cdot x + 1}\begin{array}{l}
\mathbf{if}\;x \le -473716199.82409686:\\
\;\;\;\;\left(\frac{1}{x} - \frac{\frac{1}{x}}{x \cdot x}\right) + \frac{1}{{x}^{5}}\\
\mathbf{elif}\;x \le 570.517048492422:\\
\;\;\;\;\frac{x}{1 + x \cdot x}\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{1}{x} - \frac{\frac{1}{x}}{x \cdot x}\right) + \frac{1}{{x}^{5}}\\
\end{array}double f(double x) {
double r1377044 = x;
double r1377045 = r1377044 * r1377044;
double r1377046 = 1.0;
double r1377047 = r1377045 + r1377046;
double r1377048 = r1377044 / r1377047;
return r1377048;
}
double f(double x) {
double r1377049 = x;
double r1377050 = -473716199.82409686;
bool r1377051 = r1377049 <= r1377050;
double r1377052 = 1.0;
double r1377053 = r1377052 / r1377049;
double r1377054 = r1377049 * r1377049;
double r1377055 = r1377053 / r1377054;
double r1377056 = r1377053 - r1377055;
double r1377057 = 5.0;
double r1377058 = pow(r1377049, r1377057);
double r1377059 = r1377052 / r1377058;
double r1377060 = r1377056 + r1377059;
double r1377061 = 570.517048492422;
bool r1377062 = r1377049 <= r1377061;
double r1377063 = r1377052 + r1377054;
double r1377064 = r1377049 / r1377063;
double r1377065 = r1377062 ? r1377064 : r1377060;
double r1377066 = r1377051 ? r1377060 : r1377065;
return r1377066;
}




Bits error versus x
Results
| Original | 14.9 |
|---|---|
| Target | 0.1 |
| Herbie | 0.0 |
if x < -473716199.82409686 or 570.517048492422 < x Initial program 30.8
rmApplied add-sqr-sqrt30.8
Applied associate-/r*30.7
Taylor expanded around inf 0.0
Simplified0.0
if -473716199.82409686 < x < 570.517048492422Initial program 0.0
Final simplification0.0
herbie shell --seed 2019134
(FPCore (x)
:name "x / (x^2 + 1)"
:herbie-target
(/ 1 (+ x (/ 1 x)))
(/ x (+ (* x x) 1)))