\frac{x}{x \cdot x + 1}\begin{array}{l}
\mathbf{if}\;x \le -8.90036294001547 \cdot 10^{+25}:\\
\;\;\;\;\left(\frac{1}{x} - \frac{\frac{1}{x}}{x \cdot x}\right) + \frac{1}{x \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)}\\
\mathbf{elif}\;x \le 415.7689475654002:\\
\;\;\;\;\frac{1}{1 + x \cdot x} \cdot x\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{1}{x} - \frac{\frac{1}{x}}{x \cdot x}\right) + \frac{1}{x \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)}\\
\end{array}double f(double x) {
double r1853183 = x;
double r1853184 = r1853183 * r1853183;
double r1853185 = 1.0;
double r1853186 = r1853184 + r1853185;
double r1853187 = r1853183 / r1853186;
return r1853187;
}
double f(double x) {
double r1853188 = x;
double r1853189 = -8.90036294001547e+25;
bool r1853190 = r1853188 <= r1853189;
double r1853191 = 1.0;
double r1853192 = r1853191 / r1853188;
double r1853193 = r1853188 * r1853188;
double r1853194 = r1853192 / r1853193;
double r1853195 = r1853192 - r1853194;
double r1853196 = r1853193 * r1853193;
double r1853197 = r1853188 * r1853196;
double r1853198 = r1853191 / r1853197;
double r1853199 = r1853195 + r1853198;
double r1853200 = 415.7689475654002;
bool r1853201 = r1853188 <= r1853200;
double r1853202 = r1853191 + r1853193;
double r1853203 = r1853191 / r1853202;
double r1853204 = r1853203 * r1853188;
double r1853205 = r1853201 ? r1853204 : r1853199;
double r1853206 = r1853190 ? r1853199 : r1853205;
return r1853206;
}




Bits error versus x
Results
| Original | 15.2 |
|---|---|
| Target | 0.1 |
| Herbie | 0.0 |
if x < -8.90036294001547e+25 or 415.7689475654002 < x Initial program 31.8
rmApplied div-inv31.8
Taylor expanded around inf 0.0
Simplified0.0
if -8.90036294001547e+25 < x < 415.7689475654002Initial program 0.0
rmApplied div-inv0.0
Final simplification0.0
herbie shell --seed 2019141
(FPCore (x)
:name "x / (x^2 + 1)"
:herbie-target
(/ 1 (+ x (/ 1 x)))
(/ x (+ (* x x) 1)))