\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -3.5014200692921863 \cdot 10^{+151}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le -2.1709787588541967 \cdot 10^{-224}:\\
\;\;\;\;\frac{1}{\left(\sqrt{b_2 \cdot b_2 - c \cdot a} - b_2\right) \cdot \frac{1}{c}}\\
\mathbf{elif}\;b_2 \le 1.9396144761399596 \cdot 10^{+100}:\\
\;\;\;\;\left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - c \cdot a}\right) \cdot \frac{1}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{c}{b_2} \cdot \frac{1}{2} - 2 \cdot \frac{b_2}{a}\\
\end{array}double f(double a, double b_2, double c) {
double r420166 = b_2;
double r420167 = -r420166;
double r420168 = r420166 * r420166;
double r420169 = a;
double r420170 = c;
double r420171 = r420169 * r420170;
double r420172 = r420168 - r420171;
double r420173 = sqrt(r420172);
double r420174 = r420167 - r420173;
double r420175 = r420174 / r420169;
return r420175;
}
double f(double a, double b_2, double c) {
double r420176 = b_2;
double r420177 = -3.5014200692921863e+151;
bool r420178 = r420176 <= r420177;
double r420179 = -0.5;
double r420180 = c;
double r420181 = r420180 / r420176;
double r420182 = r420179 * r420181;
double r420183 = -2.1709787588541967e-224;
bool r420184 = r420176 <= r420183;
double r420185 = 1.0;
double r420186 = r420176 * r420176;
double r420187 = a;
double r420188 = r420180 * r420187;
double r420189 = r420186 - r420188;
double r420190 = sqrt(r420189);
double r420191 = r420190 - r420176;
double r420192 = r420185 / r420180;
double r420193 = r420191 * r420192;
double r420194 = r420185 / r420193;
double r420195 = 1.9396144761399596e+100;
bool r420196 = r420176 <= r420195;
double r420197 = -r420176;
double r420198 = r420197 - r420190;
double r420199 = r420185 / r420187;
double r420200 = r420198 * r420199;
double r420201 = 0.5;
double r420202 = r420181 * r420201;
double r420203 = 2.0;
double r420204 = r420176 / r420187;
double r420205 = r420203 * r420204;
double r420206 = r420202 - r420205;
double r420207 = r420196 ? r420200 : r420206;
double r420208 = r420184 ? r420194 : r420207;
double r420209 = r420178 ? r420182 : r420208;
return r420209;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -3.5014200692921863e+151Initial program 62.5
Taylor expanded around -inf 1.6
if -3.5014200692921863e+151 < b_2 < -2.1709787588541967e-224Initial program 38.0
rmApplied flip--38.0
Simplified15.4
Simplified15.4
rmApplied clear-num15.5
Simplified13.7
Taylor expanded around inf 7.1
if -2.1709787588541967e-224 < b_2 < 1.9396144761399596e+100Initial program 10.0
rmApplied div-inv10.2
if 1.9396144761399596e+100 < b_2 Initial program 44.2
Taylor expanded around inf 3.4
Final simplification6.6
herbie shell --seed 2019151
(FPCore (a b_2 c)
:name "quad2m (problem 3.2.1, negative)"
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))