\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -1.806935659273273367110965907543014627108 \cdot 10^{98}:\\
\;\;\;\;\mathsf{fma}\left(\frac{c}{b_2}, \frac{1}{2}, \frac{b_2}{a} \cdot -2\right)\\
\mathbf{elif}\;b_2 \le 1.769241967981359063235122492290664188248 \cdot 10^{-128}:\\
\;\;\;\;\frac{1}{\frac{a}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}\\
\mathbf{elif}\;b_2 \le 4173650.65475720725953578948974609375:\\
\;\;\;\;\frac{c \cdot a}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}} \cdot \frac{1}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\end{array}double f(double a, double b_2, double c) {
double r29974 = b_2;
double r29975 = -r29974;
double r29976 = r29974 * r29974;
double r29977 = a;
double r29978 = c;
double r29979 = r29977 * r29978;
double r29980 = r29976 - r29979;
double r29981 = sqrt(r29980);
double r29982 = r29975 + r29981;
double r29983 = r29982 / r29977;
return r29983;
}
double f(double a, double b_2, double c) {
double r29984 = b_2;
double r29985 = -1.8069356592732734e+98;
bool r29986 = r29984 <= r29985;
double r29987 = c;
double r29988 = r29987 / r29984;
double r29989 = 0.5;
double r29990 = a;
double r29991 = r29984 / r29990;
double r29992 = -2.0;
double r29993 = r29991 * r29992;
double r29994 = fma(r29988, r29989, r29993);
double r29995 = 1.769241967981359e-128;
bool r29996 = r29984 <= r29995;
double r29997 = 1.0;
double r29998 = r29984 * r29984;
double r29999 = r29990 * r29987;
double r30000 = r29998 - r29999;
double r30001 = sqrt(r30000);
double r30002 = r30001 - r29984;
double r30003 = r29990 / r30002;
double r30004 = r29997 / r30003;
double r30005 = 4173650.6547572073;
bool r30006 = r29984 <= r30005;
double r30007 = r29987 * r29990;
double r30008 = -r29984;
double r30009 = r30008 - r30001;
double r30010 = r30007 / r30009;
double r30011 = r29997 / r29990;
double r30012 = r30010 * r30011;
double r30013 = -0.5;
double r30014 = r30013 * r29988;
double r30015 = r30006 ? r30012 : r30014;
double r30016 = r29996 ? r30004 : r30015;
double r30017 = r29986 ? r29994 : r30016;
return r30017;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
if b_2 < -1.8069356592732734e+98Initial program 46.8
Taylor expanded around -inf 4.1
Simplified4.1
if -1.8069356592732734e+98 < b_2 < 1.769241967981359e-128Initial program 11.7
rmApplied clear-num11.8
Simplified11.8
if 1.769241967981359e-128 < b_2 < 4173650.6547572073Initial program 36.2
rmApplied flip-+36.2
Simplified16.9
rmApplied div-inv17.0
if 4173650.6547572073 < b_2 Initial program 56.8
Taylor expanded around inf 4.8
Final simplification8.8
herbie shell --seed 2019235 +o rules:numerics
(FPCore (a b_2 c)
:name "quad2p (problem 3.2.1, positive)"
:precision binary64
(/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))