\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -2.763265898390888870746272508253147533908 \cdot 10^{-72}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le 6.568668442325333133869311590844159217228 \cdot 10^{48}:\\
\;\;\;\;\left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right) \cdot \frac{1}{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 r8672 = b_2;
double r8673 = -r8672;
double r8674 = r8672 * r8672;
double r8675 = a;
double r8676 = c;
double r8677 = r8675 * r8676;
double r8678 = r8674 - r8677;
double r8679 = sqrt(r8678);
double r8680 = r8673 - r8679;
double r8681 = r8680 / r8675;
return r8681;
}
double f(double a, double b_2, double c) {
double r8682 = b_2;
double r8683 = -2.763265898390889e-72;
bool r8684 = r8682 <= r8683;
double r8685 = -0.5;
double r8686 = c;
double r8687 = r8686 / r8682;
double r8688 = r8685 * r8687;
double r8689 = 6.568668442325333e+48;
bool r8690 = r8682 <= r8689;
double r8691 = -r8682;
double r8692 = r8682 * r8682;
double r8693 = a;
double r8694 = r8693 * r8686;
double r8695 = r8692 - r8694;
double r8696 = sqrt(r8695);
double r8697 = r8691 - r8696;
double r8698 = 1.0;
double r8699 = r8698 / r8693;
double r8700 = r8697 * r8699;
double r8701 = 0.5;
double r8702 = r8701 * r8687;
double r8703 = 2.0;
double r8704 = r8682 / r8693;
double r8705 = r8703 * r8704;
double r8706 = r8702 - r8705;
double r8707 = r8690 ? r8700 : r8706;
double r8708 = r8684 ? r8688 : r8707;
return r8708;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -2.763265898390889e-72Initial program 52.9
Taylor expanded around -inf 9.2
if -2.763265898390889e-72 < b_2 < 6.568668442325333e+48Initial program 14.0
rmApplied div-inv14.1
if 6.568668442325333e+48 < b_2 Initial program 39.1
Taylor expanded around inf 5.3
Final simplification10.5
herbie shell --seed 2019344 +o rules:numerics
(FPCore (a b_2 c)
:name "quad2m (problem 3.2.1, negative)"
:precision binary64
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))