\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -2.44666123176016780594980092347699614144 \cdot 10^{151}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le 1.12333471942415508636906215603303726066 \cdot 10^{-161}:\\
\;\;\;\;\frac{c}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}\\
\mathbf{elif}\;b_2 \le 1.104385716015500810854693836311545666138 \cdot 10^{144}:\\
\;\;\;\;\frac{1}{\frac{a}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}}\\
\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 r25337 = b_2;
double r25338 = -r25337;
double r25339 = r25337 * r25337;
double r25340 = a;
double r25341 = c;
double r25342 = r25340 * r25341;
double r25343 = r25339 - r25342;
double r25344 = sqrt(r25343);
double r25345 = r25338 - r25344;
double r25346 = r25345 / r25340;
return r25346;
}
double f(double a, double b_2, double c) {
double r25347 = b_2;
double r25348 = -2.4466612317601678e+151;
bool r25349 = r25347 <= r25348;
double r25350 = -0.5;
double r25351 = c;
double r25352 = r25351 / r25347;
double r25353 = r25350 * r25352;
double r25354 = 1.123334719424155e-161;
bool r25355 = r25347 <= r25354;
double r25356 = r25347 * r25347;
double r25357 = a;
double r25358 = r25357 * r25351;
double r25359 = r25356 - r25358;
double r25360 = sqrt(r25359);
double r25361 = r25360 - r25347;
double r25362 = r25351 / r25361;
double r25363 = 1.1043857160155008e+144;
bool r25364 = r25347 <= r25363;
double r25365 = 1.0;
double r25366 = -r25347;
double r25367 = r25366 - r25360;
double r25368 = r25357 / r25367;
double r25369 = r25365 / r25368;
double r25370 = 0.5;
double r25371 = r25370 * r25352;
double r25372 = 2.0;
double r25373 = r25347 / r25357;
double r25374 = r25372 * r25373;
double r25375 = r25371 - r25374;
double r25376 = r25364 ? r25369 : r25375;
double r25377 = r25355 ? r25362 : r25376;
double r25378 = r25349 ? r25353 : r25377;
return r25378;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -2.4466612317601678e+151Initial program 63.7
Taylor expanded around -inf 1.2
if -2.4466612317601678e+151 < b_2 < 1.123334719424155e-161Initial program 31.1
rmApplied flip--31.3
Simplified16.2
Simplified16.2
rmApplied *-un-lft-identity16.2
Applied *-un-lft-identity16.2
Applied times-frac16.2
Simplified16.2
Simplified9.4
if 1.123334719424155e-161 < b_2 < 1.1043857160155008e+144Initial program 6.1
rmApplied clear-num6.3
if 1.1043857160155008e+144 < b_2 Initial program 59.6
rmApplied flip--63.9
Simplified62.7
Simplified62.7
rmApplied *-un-lft-identity62.7
Applied *-un-lft-identity62.7
Applied times-frac62.7
Simplified62.7
Simplified62.5
rmApplied clear-num62.5
Taylor expanded around inf 2.3
Final simplification6.3
herbie shell --seed 2019325
(FPCore (a b_2 c)
:name "quad2m (problem 3.2.1, negative)"
:precision binary64
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))