\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -2.581291473695029702690078079656779261192 \cdot 10^{58}:\\
\;\;\;\;\frac{c}{b_2} \cdot \frac{-1}{2}\\
\mathbf{elif}\;b_2 \le -4.749476137934256724197446467547353552613 \cdot 10^{-147}:\\
\;\;\;\;\frac{\left(c \cdot a + \left(b_2 \cdot b_2 - b_2 \cdot b_2\right)\right) \cdot \frac{1}{a}}{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - c \cdot a}}\\
\mathbf{elif}\;b_2 \le 6.382246919184671949353170697340125221139 \cdot 10^{97}:\\
\;\;\;\;\frac{-b_2}{a} - \frac{\sqrt{b_2 \cdot b_2 - c \cdot a}}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{1}{2}}{\frac{b_2}{c}} + \frac{-2 \cdot b_2}{a}\\
\end{array}double f(double a, double b_2, double c) {
double r23044 = b_2;
double r23045 = -r23044;
double r23046 = r23044 * r23044;
double r23047 = a;
double r23048 = c;
double r23049 = r23047 * r23048;
double r23050 = r23046 - r23049;
double r23051 = sqrt(r23050);
double r23052 = r23045 - r23051;
double r23053 = r23052 / r23047;
return r23053;
}
double f(double a, double b_2, double c) {
double r23054 = b_2;
double r23055 = -2.5812914736950297e+58;
bool r23056 = r23054 <= r23055;
double r23057 = c;
double r23058 = r23057 / r23054;
double r23059 = -0.5;
double r23060 = r23058 * r23059;
double r23061 = -4.749476137934257e-147;
bool r23062 = r23054 <= r23061;
double r23063 = a;
double r23064 = r23057 * r23063;
double r23065 = r23054 * r23054;
double r23066 = r23065 - r23065;
double r23067 = r23064 + r23066;
double r23068 = 1.0;
double r23069 = r23068 / r23063;
double r23070 = r23067 * r23069;
double r23071 = -r23054;
double r23072 = r23065 - r23064;
double r23073 = sqrt(r23072);
double r23074 = r23071 + r23073;
double r23075 = r23070 / r23074;
double r23076 = 6.382246919184672e+97;
bool r23077 = r23054 <= r23076;
double r23078 = r23071 / r23063;
double r23079 = r23073 / r23063;
double r23080 = r23078 - r23079;
double r23081 = 0.5;
double r23082 = r23054 / r23057;
double r23083 = r23081 / r23082;
double r23084 = -2.0;
double r23085 = r23084 * r23054;
double r23086 = r23085 / r23063;
double r23087 = r23083 + r23086;
double r23088 = r23077 ? r23080 : r23087;
double r23089 = r23062 ? r23075 : r23088;
double r23090 = r23056 ? r23060 : r23089;
return r23090;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -2.5812914736950297e+58Initial program 57.5
Taylor expanded around -inf 3.4
Simplified3.4
if -2.5812914736950297e+58 < b_2 < -4.749476137934257e-147Initial program 37.7
rmApplied clear-num37.7
rmApplied flip--37.7
Applied associate-/r/37.8
Applied associate-/r*37.7
Simplified16.6
if -4.749476137934257e-147 < b_2 < 6.382246919184672e+97Initial program 11.8
rmApplied div-sub11.8
if 6.382246919184672e+97 < b_2 Initial program 47.4
Taylor expanded around inf 3.7
Simplified3.9
Final simplification9.0
herbie shell --seed 2019195
(FPCore (a b_2 c)
:name "quad2m (problem 3.2.1, negative)"
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))