\frac{x}{x \cdot x + 1}\begin{array}{l}
\mathbf{if}\;x \le -1.8453524061497666 \cdot 10^{+21}:\\
\;\;\;\;\frac{1}{\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot x} + \left(\frac{1}{x} - \frac{\frac{1}{x}}{x \cdot x}\right)\\
\mathbf{elif}\;x \le 13951219.631737411:\\
\;\;\;\;\frac{x}{1 + x \cdot x}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot x} + \left(\frac{1}{x} - \frac{\frac{1}{x}}{x \cdot x}\right)\\
\end{array}double f(double x) {
double r1851804 = x;
double r1851805 = r1851804 * r1851804;
double r1851806 = 1.0;
double r1851807 = r1851805 + r1851806;
double r1851808 = r1851804 / r1851807;
return r1851808;
}
double f(double x) {
double r1851809 = x;
double r1851810 = -1.8453524061497666e+21;
bool r1851811 = r1851809 <= r1851810;
double r1851812 = 1.0;
double r1851813 = r1851809 * r1851809;
double r1851814 = r1851813 * r1851813;
double r1851815 = r1851814 * r1851809;
double r1851816 = r1851812 / r1851815;
double r1851817 = r1851812 / r1851809;
double r1851818 = r1851817 / r1851813;
double r1851819 = r1851817 - r1851818;
double r1851820 = r1851816 + r1851819;
double r1851821 = 13951219.631737411;
bool r1851822 = r1851809 <= r1851821;
double r1851823 = r1851812 + r1851813;
double r1851824 = r1851809 / r1851823;
double r1851825 = r1851822 ? r1851824 : r1851820;
double r1851826 = r1851811 ? r1851820 : r1851825;
return r1851826;
}




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
rmApplied flip-+49.3
Applied associate-/r/49.3
Simplified49.3
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)))