\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -4.32337788234514 \cdot 10^{-89}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le 5.121074390969514 \cdot 10^{+149}:\\
\;\;\;\;-\frac{\sqrt{b_2 \cdot b_2 - c \cdot a} + b_2}{a}\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\frac{b_2}{a}, -2, \frac{\frac{1}{2}}{\frac{b_2}{c}}\right)\\
\end{array}double f(double a, double b_2, double c) {
double r671757 = b_2;
double r671758 = -r671757;
double r671759 = r671757 * r671757;
double r671760 = a;
double r671761 = c;
double r671762 = r671760 * r671761;
double r671763 = r671759 - r671762;
double r671764 = sqrt(r671763);
double r671765 = r671758 - r671764;
double r671766 = r671765 / r671760;
return r671766;
}
double f(double a, double b_2, double c) {
double r671767 = b_2;
double r671768 = -4.32337788234514e-89;
bool r671769 = r671767 <= r671768;
double r671770 = -0.5;
double r671771 = c;
double r671772 = r671771 / r671767;
double r671773 = r671770 * r671772;
double r671774 = 5.121074390969514e+149;
bool r671775 = r671767 <= r671774;
double r671776 = r671767 * r671767;
double r671777 = a;
double r671778 = r671771 * r671777;
double r671779 = r671776 - r671778;
double r671780 = sqrt(r671779);
double r671781 = r671780 + r671767;
double r671782 = r671781 / r671777;
double r671783 = -r671782;
double r671784 = r671767 / r671777;
double r671785 = -2.0;
double r671786 = 0.5;
double r671787 = r671767 / r671771;
double r671788 = r671786 / r671787;
double r671789 = fma(r671784, r671785, r671788);
double r671790 = r671775 ? r671783 : r671789;
double r671791 = r671769 ? r671773 : r671790;
return r671791;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
if b_2 < -4.32337788234514e-89Initial program 52.3
Taylor expanded around -inf 9.2
if -4.32337788234514e-89 < b_2 < 5.121074390969514e+149Initial program 12.3
rmApplied clear-num12.4
rmApplied div-inv12.5
Applied *-un-lft-identity12.5
Applied times-frac12.5
Simplified12.4
rmApplied distribute-rgt-neg-out12.4
Simplified12.3
if 5.121074390969514e+149 < b_2 Initial program 59.1
Taylor expanded around inf 2.6
Simplified2.6
Final simplification9.9
herbie shell --seed 2019139 +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))