\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -8.3645547041066157 \cdot 10^{-80}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le 4.1199128263687574 \cdot 10^{46}:\\
\;\;\;\;\left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right) \cdot \frac{1}{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 r11954 = b_2;
double r11955 = -r11954;
double r11956 = r11954 * r11954;
double r11957 = a;
double r11958 = c;
double r11959 = r11957 * r11958;
double r11960 = r11956 - r11959;
double r11961 = sqrt(r11960);
double r11962 = r11955 - r11961;
double r11963 = r11962 / r11957;
return r11963;
}
double f(double a, double b_2, double c) {
double r11964 = b_2;
double r11965 = -8.364554704106616e-80;
bool r11966 = r11964 <= r11965;
double r11967 = -0.5;
double r11968 = c;
double r11969 = r11968 / r11964;
double r11970 = r11967 * r11969;
double r11971 = 4.1199128263687574e+46;
bool r11972 = r11964 <= r11971;
double r11973 = -r11964;
double r11974 = r11964 * r11964;
double r11975 = a;
double r11976 = r11975 * r11968;
double r11977 = r11974 - r11976;
double r11978 = sqrt(r11977);
double r11979 = r11973 - r11978;
double r11980 = 1.0;
double r11981 = r11980 / r11975;
double r11982 = r11979 * r11981;
double r11983 = 0.5;
double r11984 = r11983 * r11969;
double r11985 = 2.0;
double r11986 = r11964 / r11975;
double r11987 = r11985 * r11986;
double r11988 = r11984 - r11987;
double r11989 = r11972 ? r11982 : r11988;
double r11990 = r11966 ? r11970 : r11989;
return r11990;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -8.364554704106616e-80Initial program 53.8
Taylor expanded around -inf 9.1
if -8.364554704106616e-80 < b_2 < 4.1199128263687574e+46Initial program 13.7
rmApplied div-inv13.8
if 4.1199128263687574e+46 < b_2 Initial program 36.8
Taylor expanded around inf 5.2
Final simplification10.2
herbie shell --seed 2020046 +o rules:numerics
(FPCore (a b_2 c)
:name "quad2m (problem 3.2.1, negative)"
:precision binary64
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))