\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -8.1855168042470635 \cdot 10^{-53}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le 3.634898599408338 \cdot 10^{+146}:\\
\;\;\;\;\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\frac{c}{b_2}, \frac{1}{2}, \frac{b_2}{a} \cdot -2\right)\\
\end{array}double f(double a, double b_2, double c) {
double r422669 = b_2;
double r422670 = -r422669;
double r422671 = r422669 * r422669;
double r422672 = a;
double r422673 = c;
double r422674 = r422672 * r422673;
double r422675 = r422671 - r422674;
double r422676 = sqrt(r422675);
double r422677 = r422670 - r422676;
double r422678 = r422677 / r422672;
return r422678;
}
double f(double a, double b_2, double c) {
double r422679 = b_2;
double r422680 = -8.1855168042470635e-53;
bool r422681 = r422679 <= r422680;
double r422682 = -0.5;
double r422683 = c;
double r422684 = r422683 / r422679;
double r422685 = r422682 * r422684;
double r422686 = 3.634898599408338e+146;
bool r422687 = r422679 <= r422686;
double r422688 = -r422679;
double r422689 = r422679 * r422679;
double r422690 = a;
double r422691 = r422690 * r422683;
double r422692 = r422689 - r422691;
double r422693 = sqrt(r422692);
double r422694 = r422688 - r422693;
double r422695 = r422694 / r422690;
double r422696 = 0.5;
double r422697 = r422679 / r422690;
double r422698 = -2.0;
double r422699 = r422697 * r422698;
double r422700 = fma(r422684, r422696, r422699);
double r422701 = r422687 ? r422695 : r422700;
double r422702 = r422681 ? r422685 : r422701;
return r422702;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
if b_2 < -8.1855168042470635e-53Initial program 54.2
Taylor expanded around -inf 7.5
if -8.1855168042470635e-53 < b_2 < 3.634898599408338e+146Initial program 13.2
rmApplied div-inv13.3
rmApplied un-div-inv13.2
if 3.634898599408338e+146 < b_2 Initial program 58.5
rmApplied div-inv58.5
Taylor expanded around inf 2.0
Simplified2.0
Final simplification9.8
herbie shell --seed 2019135 +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))