\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -2.3732770006881601 \cdot 10^{-89}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le 1.2699491303403745 \cdot 10^{143}:\\
\;\;\;\;\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\
\mathbf{else}:\\
\;\;\;\;-2 \cdot \frac{b_2}{a}\\
\end{array}double f(double a, double b_2, double c) {
double r21293 = b_2;
double r21294 = -r21293;
double r21295 = r21293 * r21293;
double r21296 = a;
double r21297 = c;
double r21298 = r21296 * r21297;
double r21299 = r21295 - r21298;
double r21300 = sqrt(r21299);
double r21301 = r21294 - r21300;
double r21302 = r21301 / r21296;
return r21302;
}
double f(double a, double b_2, double c) {
double r21303 = b_2;
double r21304 = -2.37327700068816e-89;
bool r21305 = r21303 <= r21304;
double r21306 = -0.5;
double r21307 = c;
double r21308 = r21307 / r21303;
double r21309 = r21306 * r21308;
double r21310 = 1.2699491303403745e+143;
bool r21311 = r21303 <= r21310;
double r21312 = -r21303;
double r21313 = r21303 * r21303;
double r21314 = a;
double r21315 = r21314 * r21307;
double r21316 = r21313 - r21315;
double r21317 = sqrt(r21316);
double r21318 = r21312 - r21317;
double r21319 = r21318 / r21314;
double r21320 = -2.0;
double r21321 = r21303 / r21314;
double r21322 = r21320 * r21321;
double r21323 = r21311 ? r21319 : r21322;
double r21324 = r21305 ? r21309 : r21323;
return r21324;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -2.37327700068816e-89Initial program 52.5
Taylor expanded around -inf 9.9
if -2.37327700068816e-89 < b_2 < 1.2699491303403745e+143Initial program 12.5
rmApplied div-sub12.5
rmApplied div-inv12.6
Applied div-inv12.6
Applied distribute-rgt-out--12.6
rmApplied associate-*l/12.5
Simplified12.5
if 1.2699491303403745e+143 < b_2 Initial program 60.0
rmApplied div-sub60.0
rmApplied div-inv60.0
Applied div-inv60.0
Applied distribute-rgt-out--60.0
Taylor expanded around 0 3.0
Final simplification10.3
herbie shell --seed 2020033 +o rules:numerics
(FPCore (a b_2 c)
:name "quad2m (problem 3.2.1, negative)"
:precision binary64
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))