\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -3.396811349079212 \cdot 10^{+61}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le 1.7036165226371234 \cdot 10^{-298}:\\
\;\;\;\;\frac{c}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}\\
\mathbf{elif}\;b_2 \le 2.777729270705496 \cdot 10^{+74}:\\
\;\;\;\;\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{b_2}{a} \cdot -2\\
\end{array}double f(double a, double b_2, double c) {
double r549901 = b_2;
double r549902 = -r549901;
double r549903 = r549901 * r549901;
double r549904 = a;
double r549905 = c;
double r549906 = r549904 * r549905;
double r549907 = r549903 - r549906;
double r549908 = sqrt(r549907);
double r549909 = r549902 - r549908;
double r549910 = r549909 / r549904;
return r549910;
}
double f(double a, double b_2, double c) {
double r549911 = b_2;
double r549912 = -3.396811349079212e+61;
bool r549913 = r549911 <= r549912;
double r549914 = -0.5;
double r549915 = c;
double r549916 = r549915 / r549911;
double r549917 = r549914 * r549916;
double r549918 = 1.7036165226371234e-298;
bool r549919 = r549911 <= r549918;
double r549920 = r549911 * r549911;
double r549921 = a;
double r549922 = r549921 * r549915;
double r549923 = r549920 - r549922;
double r549924 = sqrt(r549923);
double r549925 = r549924 - r549911;
double r549926 = r549915 / r549925;
double r549927 = 2.777729270705496e+74;
bool r549928 = r549911 <= r549927;
double r549929 = -r549911;
double r549930 = r549929 - r549924;
double r549931 = r549930 / r549921;
double r549932 = r549911 / r549921;
double r549933 = -2.0;
double r549934 = r549932 * r549933;
double r549935 = r549928 ? r549931 : r549934;
double r549936 = r549919 ? r549926 : r549935;
double r549937 = r549913 ? r549917 : r549936;
return r549937;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -3.396811349079212e+61Initial program 57.2
Taylor expanded around -inf 3.0
if -3.396811349079212e+61 < b_2 < 1.7036165226371234e-298Initial program 29.7
rmApplied add-sqr-sqrt30.4
rmApplied flip--30.5
Simplified17.1
Simplified17.0
rmApplied *-un-lft-identity17.0
Applied *-un-lft-identity17.0
Applied times-frac17.0
Simplified17.0
Simplified16.5
Taylor expanded around inf 9.5
if 1.7036165226371234e-298 < b_2 < 2.777729270705496e+74Initial program 9.6
if 2.777729270705496e+74 < b_2 Initial program 38.9
rmApplied add-sqr-sqrt39.0
rmApplied flip--58.6
Simplified60.9
Simplified61.0
Taylor expanded around 0 4.4
Final simplification6.8
herbie shell --seed 2019130
(FPCore (a b_2 c)
:name "quad2m (problem 3.2.1, negative)"
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))