\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -1.359743697059274779899139718884898592231 \cdot 10^{52}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le -1.608116455888013073415978967747010549618 \cdot 10^{-192}:\\
\;\;\;\;\frac{a \cdot \frac{c}{\sqrt{b_2 \cdot b_2 - c \cdot a} - b_2}}{a}\\
\mathbf{elif}\;b_2 \le 2.433359793914946901099874824645322603288 \cdot 10^{86}:\\
\;\;\;\;\frac{-b_2}{a} - \frac{\sqrt{b_2 \cdot b_2 - c \cdot a}}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{c}{b_2}}{2} - \frac{b_2 \cdot 2}{a}\\
\end{array}double f(double a, double b_2, double c) {
double r923031 = b_2;
double r923032 = -r923031;
double r923033 = r923031 * r923031;
double r923034 = a;
double r923035 = c;
double r923036 = r923034 * r923035;
double r923037 = r923033 - r923036;
double r923038 = sqrt(r923037);
double r923039 = r923032 - r923038;
double r923040 = r923039 / r923034;
return r923040;
}
double f(double a, double b_2, double c) {
double r923041 = b_2;
double r923042 = -1.3597436970592748e+52;
bool r923043 = r923041 <= r923042;
double r923044 = -0.5;
double r923045 = c;
double r923046 = r923045 / r923041;
double r923047 = r923044 * r923046;
double r923048 = -1.608116455888013e-192;
bool r923049 = r923041 <= r923048;
double r923050 = a;
double r923051 = r923041 * r923041;
double r923052 = r923045 * r923050;
double r923053 = r923051 - r923052;
double r923054 = sqrt(r923053);
double r923055 = r923054 - r923041;
double r923056 = r923045 / r923055;
double r923057 = r923050 * r923056;
double r923058 = r923057 / r923050;
double r923059 = 2.433359793914947e+86;
bool r923060 = r923041 <= r923059;
double r923061 = -r923041;
double r923062 = r923061 / r923050;
double r923063 = r923054 / r923050;
double r923064 = r923062 - r923063;
double r923065 = 2.0;
double r923066 = r923046 / r923065;
double r923067 = r923041 * r923065;
double r923068 = r923067 / r923050;
double r923069 = r923066 - r923068;
double r923070 = r923060 ? r923064 : r923069;
double r923071 = r923049 ? r923058 : r923070;
double r923072 = r923043 ? r923047 : r923071;
return r923072;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -1.3597436970592748e+52Initial program 57.7
Taylor expanded around -inf 4.0
if -1.3597436970592748e+52 < b_2 < -1.608116455888013e-192Initial program 34.6
rmApplied flip--34.7
Simplified18.2
Simplified18.2
rmApplied *-un-lft-identity18.2
Applied times-frac14.7
Simplified14.7
if -1.608116455888013e-192 < b_2 < 2.433359793914947e+86Initial program 10.5
rmApplied div-sub10.5
if 2.433359793914947e+86 < b_2 Initial program 44.0
Taylor expanded around inf 3.9
Simplified4.0
Final simplification8.3
herbie shell --seed 2019170
(FPCore (a b_2 c)
:name "quad2m (problem 3.2.1, negative)"
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))