\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -1.229142930221511 \cdot 10^{-57}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le 2.6656023684116586 \cdot 10^{+55}:\\
\;\;\;\;\left(-\frac{b_2}{a}\right) - \sqrt{b_2 \cdot b_2 - c \cdot a} \cdot \frac{1}{a}\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\frac{b_2}{a}, -2, \frac{\frac{1}{2}}{\frac{b_2}{c}}\right)\\
\end{array}double f(double a, double b_2, double c) {
double r796137 = b_2;
double r796138 = -r796137;
double r796139 = r796137 * r796137;
double r796140 = a;
double r796141 = c;
double r796142 = r796140 * r796141;
double r796143 = r796139 - r796142;
double r796144 = sqrt(r796143);
double r796145 = r796138 - r796144;
double r796146 = r796145 / r796140;
return r796146;
}
double f(double a, double b_2, double c) {
double r796147 = b_2;
double r796148 = -1.229142930221511e-57;
bool r796149 = r796147 <= r796148;
double r796150 = -0.5;
double r796151 = c;
double r796152 = r796151 / r796147;
double r796153 = r796150 * r796152;
double r796154 = 2.6656023684116586e+55;
bool r796155 = r796147 <= r796154;
double r796156 = a;
double r796157 = r796147 / r796156;
double r796158 = -r796157;
double r796159 = r796147 * r796147;
double r796160 = r796151 * r796156;
double r796161 = r796159 - r796160;
double r796162 = sqrt(r796161);
double r796163 = 1.0;
double r796164 = r796163 / r796156;
double r796165 = r796162 * r796164;
double r796166 = r796158 - r796165;
double r796167 = -2.0;
double r796168 = 0.5;
double r796169 = r796147 / r796151;
double r796170 = r796168 / r796169;
double r796171 = fma(r796157, r796167, r796170);
double r796172 = r796155 ? r796166 : r796171;
double r796173 = r796149 ? r796153 : r796172;
return r796173;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
if b_2 < -1.229142930221511e-57Initial program 53.7
rmApplied div-sub54.1
Taylor expanded around -inf 8.2
if -1.229142930221511e-57 < b_2 < 2.6656023684116586e+55Initial program 14.5
rmApplied div-sub14.5
rmApplied div-inv14.6
if 2.6656023684116586e+55 < b_2 Initial program 37.1
Taylor expanded around inf 6.2
Simplified6.2
Final simplification10.5
herbie shell --seed 2019141 +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))