\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -3.359953003549156817553996908233908949771 \cdot 10^{103}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le 2.094358742794727790656239317142702500789 \cdot 10^{-239}:\\
\;\;\;\;\frac{c}{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}\\
\mathbf{elif}\;b_2 \le 5.099089738165329086098741767888130630655 \cdot 10^{67}:\\
\;\;\;\;\frac{\left(-b_2\right) - \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 r22474 = b_2;
double r22475 = -r22474;
double r22476 = r22474 * r22474;
double r22477 = a;
double r22478 = c;
double r22479 = r22477 * r22478;
double r22480 = r22476 - r22479;
double r22481 = sqrt(r22480);
double r22482 = r22475 - r22481;
double r22483 = r22482 / r22477;
return r22483;
}
double f(double a, double b_2, double c) {
double r22484 = b_2;
double r22485 = -3.359953003549157e+103;
bool r22486 = r22484 <= r22485;
double r22487 = -0.5;
double r22488 = c;
double r22489 = r22488 / r22484;
double r22490 = r22487 * r22489;
double r22491 = 2.094358742794728e-239;
bool r22492 = r22484 <= r22491;
double r22493 = -r22484;
double r22494 = r22484 * r22484;
double r22495 = a;
double r22496 = r22495 * r22488;
double r22497 = r22494 - r22496;
double r22498 = sqrt(r22497);
double r22499 = r22493 + r22498;
double r22500 = r22488 / r22499;
double r22501 = 5.099089738165329e+67;
bool r22502 = r22484 <= r22501;
double r22503 = r22493 - r22498;
double r22504 = r22503 / r22495;
double r22505 = 0.5;
double r22506 = r22505 * r22489;
double r22507 = 2.0;
double r22508 = r22484 / r22495;
double r22509 = r22507 * r22508;
double r22510 = r22506 - r22509;
double r22511 = r22502 ? r22504 : r22510;
double r22512 = r22492 ? r22500 : r22511;
double r22513 = r22486 ? r22490 : r22512;
return r22513;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -3.359953003549157e+103Initial program 59.7
Taylor expanded around -inf 2.5
if -3.359953003549157e+103 < b_2 < 2.094358742794728e-239Initial program 30.6
rmApplied clear-num30.6
rmApplied flip--30.7
Applied associate-/r/30.8
Applied associate-/r*30.8
Simplified15.4
Taylor expanded around 0 9.5
if 2.094358742794728e-239 < b_2 < 5.099089738165329e+67Initial program 8.0
if 5.099089738165329e+67 < b_2 Initial program 40.4
Taylor expanded around inf 5.4
Final simplification6.8
herbie shell --seed 2019304
(FPCore (a b_2 c)
:name "quad2m (problem 3.2.1, negative)"
:precision binary64
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))