\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -2.4336717856540716 \cdot 10^{-82}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le 2.910803917041586 \cdot 10^{80}:\\
\;\;\;\;\frac{-b_2}{a} - \frac{\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 r16909 = b_2;
double r16910 = -r16909;
double r16911 = r16909 * r16909;
double r16912 = a;
double r16913 = c;
double r16914 = r16912 * r16913;
double r16915 = r16911 - r16914;
double r16916 = sqrt(r16915);
double r16917 = r16910 - r16916;
double r16918 = r16917 / r16912;
return r16918;
}
double f(double a, double b_2, double c) {
double r16919 = b_2;
double r16920 = -2.4336717856540716e-82;
bool r16921 = r16919 <= r16920;
double r16922 = -0.5;
double r16923 = c;
double r16924 = r16923 / r16919;
double r16925 = r16922 * r16924;
double r16926 = 2.910803917041586e+80;
bool r16927 = r16919 <= r16926;
double r16928 = -r16919;
double r16929 = a;
double r16930 = r16928 / r16929;
double r16931 = r16919 * r16919;
double r16932 = r16929 * r16923;
double r16933 = r16931 - r16932;
double r16934 = sqrt(r16933);
double r16935 = r16934 / r16929;
double r16936 = r16930 - r16935;
double r16937 = 0.5;
double r16938 = r16937 * r16924;
double r16939 = 2.0;
double r16940 = r16919 / r16929;
double r16941 = r16939 * r16940;
double r16942 = r16938 - r16941;
double r16943 = r16927 ? r16936 : r16942;
double r16944 = r16921 ? r16925 : r16943;
return r16944;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -2.4336717856540716e-82Initial program 53.2
Taylor expanded around -inf 9.4
if -2.4336717856540716e-82 < b_2 < 2.910803917041586e+80Initial program 12.7
rmApplied div-sub12.7
if 2.910803917041586e+80 < b_2 Initial program 42.9
Taylor expanded around inf 3.9
Final simplification9.9
herbie shell --seed 2020021 +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))