\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -5.691277786452672 \cdot 10^{-38}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le 1.502350718288979 \cdot 10^{+75}:\\
\;\;\;\;\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{\mathsf{fma}\left(\frac{1}{2}, \left(\frac{a}{\frac{b_2}{c}}\right), \left(b_2 \cdot -2\right)\right)}{a}\\
\end{array}double f(double a, double b_2, double c) {
double r3724576 = b_2;
double r3724577 = -r3724576;
double r3724578 = r3724576 * r3724576;
double r3724579 = a;
double r3724580 = c;
double r3724581 = r3724579 * r3724580;
double r3724582 = r3724578 - r3724581;
double r3724583 = sqrt(r3724582);
double r3724584 = r3724577 - r3724583;
double r3724585 = r3724584 / r3724579;
return r3724585;
}
double f(double a, double b_2, double c) {
double r3724586 = b_2;
double r3724587 = -5.691277786452672e-38;
bool r3724588 = r3724586 <= r3724587;
double r3724589 = -0.5;
double r3724590 = c;
double r3724591 = r3724590 / r3724586;
double r3724592 = r3724589 * r3724591;
double r3724593 = 1.502350718288979e+75;
bool r3724594 = r3724586 <= r3724593;
double r3724595 = -r3724586;
double r3724596 = r3724586 * r3724586;
double r3724597 = a;
double r3724598 = r3724597 * r3724590;
double r3724599 = r3724596 - r3724598;
double r3724600 = sqrt(r3724599);
double r3724601 = r3724595 - r3724600;
double r3724602 = r3724601 / r3724597;
double r3724603 = 0.5;
double r3724604 = r3724586 / r3724590;
double r3724605 = r3724597 / r3724604;
double r3724606 = -2.0;
double r3724607 = r3724586 * r3724606;
double r3724608 = fma(r3724603, r3724605, r3724607);
double r3724609 = r3724608 / r3724597;
double r3724610 = r3724594 ? r3724602 : r3724609;
double r3724611 = r3724588 ? r3724592 : r3724610;
return r3724611;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
if b_2 < -5.691277786452672e-38Initial program 54.0
Taylor expanded around -inf 54.0
Simplified54.0
Taylor expanded around -inf 7.9
if -5.691277786452672e-38 < b_2 < 1.502350718288979e+75Initial program 14.7
Taylor expanded around -inf 14.7
Simplified14.7
if 1.502350718288979e+75 < b_2 Initial program 40.8
Taylor expanded around -inf 40.8
Simplified40.8
Taylor expanded around inf 9.8
Simplified4.6
Final simplification10.4
herbie shell --seed 2019120 +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))