\frac{x}{x \cdot x + 1}\begin{array}{l}
\mathbf{if}\;x \le -1.8453524061497666 \cdot 10^{+21}:\\
\;\;\;\;\left(\frac{1}{x} - \frac{\frac{1}{x}}{x \cdot x}\right) + \frac{1}{{x}^{5}}\\
\mathbf{elif}\;x \le 13951219.631737411:\\
\;\;\;\;\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 r1083643 = x;
double r1083644 = r1083643 * r1083643;
double r1083645 = 1.0;
double r1083646 = r1083644 + r1083645;
double r1083647 = r1083643 / r1083646;
return r1083647;
}
double f(double x) {
double r1083648 = x;
double r1083649 = -1.8453524061497666e+21;
bool r1083650 = r1083648 <= r1083649;
double r1083651 = 1.0;
double r1083652 = r1083651 / r1083648;
double r1083653 = r1083648 * r1083648;
double r1083654 = r1083652 / r1083653;
double r1083655 = r1083652 - r1083654;
double r1083656 = 5.0;
double r1083657 = pow(r1083648, r1083656);
double r1083658 = r1083651 / r1083657;
double r1083659 = r1083655 + r1083658;
double r1083660 = 13951219.631737411;
bool r1083661 = r1083648 <= r1083660;
double r1083662 = r1083651 + r1083653;
double r1083663 = r1083648 / r1083662;
double r1083664 = r1083661 ? r1083663 : r1083659;
double r1083665 = r1083650 ? r1083659 : r1083664;
return r1083665;
}




Bits error versus x
Results
| Original | 15.2 |
|---|---|
| Target | 0.1 |
| Herbie | 0.0 |
if x < -1.8453524061497666e+21 or 13951219.631737411 < x Initial program 31.5
Taylor expanded around -inf 0.0
Simplified0.0
if -1.8453524061497666e+21 < x < 13951219.631737411Initial program 0.0
Final simplification0.0
herbie shell --seed 2019152
(FPCore (x)
:name "x / (x^2 + 1)"
:herbie-target
(/ 1 (+ x (/ 1 x)))
(/ x (+ (* x x) 1)))