\frac{x}{x \cdot x + 1}\begin{array}{l}
\mathbf{if}\;x \le -16729132342.41712:\\
\;\;\;\;\frac{1}{x} - \left(\frac{\frac{1}{x}}{x \cdot x} - \frac{1}{\left(\left(x \cdot x\right) \cdot x\right) \cdot \left(x \cdot x\right)}\right)\\
\mathbf{elif}\;x \le 419.2574900762654:\\
\;\;\;\;\frac{\sqrt{1 - \left(x \cdot x - \left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)}}{\sqrt{1 + x \cdot x}} \cdot \frac{x}{\sqrt{\left(\left(x \cdot x\right) \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot x\right) + 1}}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{x} - \left(\frac{\frac{1}{x}}{x \cdot x} - \frac{1}{\left(\left(x \cdot x\right) \cdot x\right) \cdot \left(x \cdot x\right)}\right)\\
\end{array}double f(double x) {
double r1845832 = x;
double r1845833 = r1845832 * r1845832;
double r1845834 = 1.0;
double r1845835 = r1845833 + r1845834;
double r1845836 = r1845832 / r1845835;
return r1845836;
}
double f(double x) {
double r1845837 = x;
double r1845838 = -16729132342.41712;
bool r1845839 = r1845837 <= r1845838;
double r1845840 = 1.0;
double r1845841 = r1845840 / r1845837;
double r1845842 = r1845837 * r1845837;
double r1845843 = r1845841 / r1845842;
double r1845844 = r1845842 * r1845837;
double r1845845 = r1845844 * r1845842;
double r1845846 = r1845840 / r1845845;
double r1845847 = r1845843 - r1845846;
double r1845848 = r1845841 - r1845847;
double r1845849 = 419.2574900762654;
bool r1845850 = r1845837 <= r1845849;
double r1845851 = r1845842 * r1845842;
double r1845852 = r1845842 - r1845851;
double r1845853 = r1845840 - r1845852;
double r1845854 = sqrt(r1845853);
double r1845855 = r1845840 + r1845842;
double r1845856 = sqrt(r1845855);
double r1845857 = r1845854 / r1845856;
double r1845858 = r1845844 * r1845844;
double r1845859 = r1845858 + r1845840;
double r1845860 = sqrt(r1845859);
double r1845861 = r1845837 / r1845860;
double r1845862 = r1845857 * r1845861;
double r1845863 = r1845850 ? r1845862 : r1845848;
double r1845864 = r1845839 ? r1845848 : r1845863;
return r1845864;
}




Bits error versus x
Results
| Original | 15.2 |
|---|---|
| Target | 0.1 |
| Herbie | 0.0 |
if x < -16729132342.41712 or 419.2574900762654 < x Initial program 30.4
Taylor expanded around inf 0.0
Simplified0.0
if -16729132342.41712 < x < 419.2574900762654Initial program 0.0
rmApplied add-sqr-sqrt0.0
Applied associate-/r*0.0
rmApplied *-un-lft-identity0.0
Applied sqrt-prod0.0
Applied flip3-+0.0
Applied sqrt-div0.0
Applied associate-/r/0.0
Applied times-frac0.0
Simplified0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019129
(FPCore (x)
:name "x / (x^2 + 1)"
:herbie-target
(/ 1 (+ x (/ 1 x)))
(/ x (+ (* x x) 1)))