\frac{x}{x \cdot x + 1}\begin{array}{l}
\mathbf{if}\;x \le -45266.24690235777:\\
\;\;\;\;\left(\frac{1}{\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot x} + \frac{1}{x}\right) - \frac{\frac{1}{x}}{x \cdot x}\\
\mathbf{elif}\;x \le 370.7004599643339:\\
\;\;\;\;\frac{x}{\left(\left(x \cdot x\right) \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot x\right) + 1} \cdot \left(\left(1 - x \cdot x\right) + \left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{1}{\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot x} + \frac{1}{x}\right) - \frac{\frac{1}{x}}{x \cdot x}\\
\end{array}double f(double x) {
double r1597167 = x;
double r1597168 = r1597167 * r1597167;
double r1597169 = 1.0;
double r1597170 = r1597168 + r1597169;
double r1597171 = r1597167 / r1597170;
return r1597171;
}
double f(double x) {
double r1597172 = x;
double r1597173 = -45266.24690235777;
bool r1597174 = r1597172 <= r1597173;
double r1597175 = 1.0;
double r1597176 = r1597172 * r1597172;
double r1597177 = r1597176 * r1597176;
double r1597178 = r1597177 * r1597172;
double r1597179 = r1597175 / r1597178;
double r1597180 = r1597175 / r1597172;
double r1597181 = r1597179 + r1597180;
double r1597182 = r1597180 / r1597176;
double r1597183 = r1597181 - r1597182;
double r1597184 = 370.7004599643339;
bool r1597185 = r1597172 <= r1597184;
double r1597186 = r1597176 * r1597172;
double r1597187 = r1597186 * r1597186;
double r1597188 = r1597187 + r1597175;
double r1597189 = r1597172 / r1597188;
double r1597190 = r1597175 - r1597176;
double r1597191 = r1597190 + r1597177;
double r1597192 = r1597189 * r1597191;
double r1597193 = r1597185 ? r1597192 : r1597183;
double r1597194 = r1597174 ? r1597183 : r1597193;
return r1597194;
}




Bits error versus x
Results
| Original | 14.9 |
|---|---|
| Target | 0.1 |
| Herbie | 0.0 |
if x < -45266.24690235777 or 370.7004599643339 < x Initial program 29.6
rmApplied flip3-+52.9
Applied associate-/r/52.9
Simplified52.9
Taylor expanded around -inf 0.0
Simplified0.0
if -45266.24690235777 < x < 370.7004599643339Initial program 0.0
rmApplied flip3-+0.0
Applied associate-/r/0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019139
(FPCore (x)
:name "x / (x^2 + 1)"
:herbie-target
(/ 1 (+ x (/ 1 x)))
(/ x (+ (* x x) 1)))