\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -9.332433396832084322962138528577137922234 \cdot 10^{-58}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le 3.038903409991338138548211857189252856935 \cdot 10^{107}:\\
\;\;\;\;\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 r951080 = b_2;
double r951081 = -r951080;
double r951082 = r951080 * r951080;
double r951083 = a;
double r951084 = c;
double r951085 = r951083 * r951084;
double r951086 = r951082 - r951085;
double r951087 = sqrt(r951086);
double r951088 = r951081 - r951087;
double r951089 = r951088 / r951083;
return r951089;
}
double f(double a, double b_2, double c) {
double r951090 = b_2;
double r951091 = -9.332433396832084e-58;
bool r951092 = r951090 <= r951091;
double r951093 = -0.5;
double r951094 = c;
double r951095 = r951094 / r951090;
double r951096 = r951093 * r951095;
double r951097 = 3.038903409991338e+107;
bool r951098 = r951090 <= r951097;
double r951099 = -r951090;
double r951100 = r951090 * r951090;
double r951101 = a;
double r951102 = r951101 * r951094;
double r951103 = r951100 - r951102;
double r951104 = sqrt(r951103);
double r951105 = r951099 - r951104;
double r951106 = r951105 / r951101;
double r951107 = r951090 / r951101;
double r951108 = -2.0;
double r951109 = r951107 * r951108;
double r951110 = r951098 ? r951106 : r951109;
double r951111 = r951092 ? r951096 : r951110;
return r951111;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -9.332433396832084e-58Initial program 53.5
Taylor expanded around -inf 8.7
if -9.332433396832084e-58 < b_2 < 3.038903409991338e+107Initial program 14.0
if 3.038903409991338e+107 < b_2 Initial program 49.1
rmApplied flip--63.2
Simplified62.2
Simplified62.2
Taylor expanded around 0 3.7
Final simplification10.5
herbie shell --seed 2019171 +o rules:numerics
(FPCore (a b_2 c)
:name "quad2m (problem 3.2.1, negative)"
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))