\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -5.260570947330360464594776218624123716053 \cdot 10^{-14}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le -3.264171759716637915376042096528155176919 \cdot 10^{-294}:\\
\;\;\;\;\frac{a \cdot \frac{c}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}{a}\\
\mathbf{elif}\;b_2 \le 1.092877965036258569027964750097428917598 \cdot 10^{104}:\\
\;\;\;\;\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\
\end{array}double f(double a, double b_2, double c) {
double r5484838 = b_2;
double r5484839 = -r5484838;
double r5484840 = r5484838 * r5484838;
double r5484841 = a;
double r5484842 = c;
double r5484843 = r5484841 * r5484842;
double r5484844 = r5484840 - r5484843;
double r5484845 = sqrt(r5484844);
double r5484846 = r5484839 - r5484845;
double r5484847 = r5484846 / r5484841;
return r5484847;
}
double f(double a, double b_2, double c) {
double r5484848 = b_2;
double r5484849 = -5.2605709473303605e-14;
bool r5484850 = r5484848 <= r5484849;
double r5484851 = -0.5;
double r5484852 = c;
double r5484853 = r5484852 / r5484848;
double r5484854 = r5484851 * r5484853;
double r5484855 = -3.264171759716638e-294;
bool r5484856 = r5484848 <= r5484855;
double r5484857 = a;
double r5484858 = r5484848 * r5484848;
double r5484859 = r5484857 * r5484852;
double r5484860 = r5484858 - r5484859;
double r5484861 = sqrt(r5484860);
double r5484862 = r5484861 - r5484848;
double r5484863 = r5484852 / r5484862;
double r5484864 = r5484857 * r5484863;
double r5484865 = r5484864 / r5484857;
double r5484866 = 1.0928779650362586e+104;
bool r5484867 = r5484848 <= r5484866;
double r5484868 = -r5484848;
double r5484869 = r5484868 - r5484861;
double r5484870 = r5484869 / r5484857;
double r5484871 = 0.5;
double r5484872 = r5484871 * r5484853;
double r5484873 = 2.0;
double r5484874 = r5484848 / r5484857;
double r5484875 = r5484873 * r5484874;
double r5484876 = r5484872 - r5484875;
double r5484877 = r5484867 ? r5484870 : r5484876;
double r5484878 = r5484856 ? r5484865 : r5484877;
double r5484879 = r5484850 ? r5484854 : r5484878;
return r5484879;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -5.2605709473303605e-14Initial program 55.9
Taylor expanded around -inf 6.0
if -5.2605709473303605e-14 < b_2 < -3.264171759716638e-294Initial program 26.5
rmApplied flip--26.5
Simplified18.3
Simplified18.3
rmApplied *-un-lft-identity18.3
Applied times-frac14.6
Simplified14.6
if -3.264171759716638e-294 < b_2 < 1.0928779650362586e+104Initial program 9.6
if 1.0928779650362586e+104 < b_2 Initial program 47.7
Taylor expanded around inf 3.3
Final simplification8.5
herbie shell --seed 2019173
(FPCore (a b_2 c)
:name "NMSE problem 3.2.1"
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))