\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -3.8424248185280593 \cdot 10^{-34}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le 2.276690291884487 \cdot 10^{80}:\\
\;\;\;\;\left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right) \cdot \frac{1}{a}\\
\mathbf{else}:\\
\;\;\;\;-2 \cdot \frac{b_2}{a}\\
\end{array}double f(double a, double b_2, double c) {
double r63971 = b_2;
double r63972 = -r63971;
double r63973 = r63971 * r63971;
double r63974 = a;
double r63975 = c;
double r63976 = r63974 * r63975;
double r63977 = r63973 - r63976;
double r63978 = sqrt(r63977);
double r63979 = r63972 - r63978;
double r63980 = r63979 / r63974;
return r63980;
}
double f(double a, double b_2, double c) {
double r63981 = b_2;
double r63982 = -3.8424248185280593e-34;
bool r63983 = r63981 <= r63982;
double r63984 = -0.5;
double r63985 = c;
double r63986 = r63985 / r63981;
double r63987 = r63984 * r63986;
double r63988 = 2.2766902918844874e+80;
bool r63989 = r63981 <= r63988;
double r63990 = -r63981;
double r63991 = r63981 * r63981;
double r63992 = a;
double r63993 = r63992 * r63985;
double r63994 = r63991 - r63993;
double r63995 = sqrt(r63994);
double r63996 = r63990 - r63995;
double r63997 = 1.0;
double r63998 = r63997 / r63992;
double r63999 = r63996 * r63998;
double r64000 = -2.0;
double r64001 = r63981 / r63992;
double r64002 = r64000 * r64001;
double r64003 = r63989 ? r63999 : r64002;
double r64004 = r63983 ? r63987 : r64003;
return r64004;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -3.8424248185280593e-34Initial program 54.2
Taylor expanded around -inf 7.1
if -3.8424248185280593e-34 < b_2 < 2.2766902918844874e+80Initial program 13.9
rmApplied div-inv14.0
if 2.2766902918844874e+80 < b_2 Initial program 44.4
rmApplied clear-num44.5
Simplified44.5
Taylor expanded around 0 4.5
Final simplification9.9
herbie shell --seed 2019199 +o rules:numerics
(FPCore (a b_2 c)
:name "NMSE problem 3.2.1"
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))