\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -6.778998599359054 \cdot 10^{+108}:\\
\;\;\;\;\mathsf{fma}\left(-2, \frac{b_2}{a}, \frac{1}{2} \cdot \frac{c}{b_2}\right)\\
\mathbf{elif}\;b_2 \le 2.1478963185043958 \cdot 10^{-57}:\\
\;\;\;\;\left(\sqrt{b_2 \cdot b_2 - c \cdot a} - b_2\right) \cdot \frac{1}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\end{array}double f(double a, double b_2, double c) {
double r332446 = b_2;
double r332447 = -r332446;
double r332448 = r332446 * r332446;
double r332449 = a;
double r332450 = c;
double r332451 = r332449 * r332450;
double r332452 = r332448 - r332451;
double r332453 = sqrt(r332452);
double r332454 = r332447 + r332453;
double r332455 = r332454 / r332449;
return r332455;
}
double f(double a, double b_2, double c) {
double r332456 = b_2;
double r332457 = -6.778998599359054e+108;
bool r332458 = r332456 <= r332457;
double r332459 = -2.0;
double r332460 = a;
double r332461 = r332456 / r332460;
double r332462 = 0.5;
double r332463 = c;
double r332464 = r332463 / r332456;
double r332465 = r332462 * r332464;
double r332466 = fma(r332459, r332461, r332465);
double r332467 = 2.1478963185043958e-57;
bool r332468 = r332456 <= r332467;
double r332469 = r332456 * r332456;
double r332470 = r332463 * r332460;
double r332471 = r332469 - r332470;
double r332472 = sqrt(r332471);
double r332473 = r332472 - r332456;
double r332474 = 1.0;
double r332475 = r332474 / r332460;
double r332476 = r332473 * r332475;
double r332477 = -0.5;
double r332478 = r332477 * r332464;
double r332479 = r332468 ? r332476 : r332478;
double r332480 = r332458 ? r332466 : r332479;
return r332480;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
if b_2 < -6.778998599359054e+108Initial program 46.7
Simplified46.7
Taylor expanded around -inf 3.3
Simplified3.3
if -6.778998599359054e+108 < b_2 < 2.1478963185043958e-57Initial program 13.1
Simplified13.1
rmApplied div-inv13.2
if 2.1478963185043958e-57 < b_2 Initial program 52.9
Simplified52.9
Taylor expanded around inf 8.0
Final simplification9.7
herbie shell --seed 2019155 +o rules:numerics
(FPCore (a b_2 c)
:name "quad2p (problem 3.2.1, positive)"
(/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))