\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -3.727723973148742563324153150500151191249 \cdot 10^{105}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le 1.364529283357116165462040672443911208369 \cdot 10^{-246}:\\
\;\;\;\;\frac{c}{\sqrt{\mathsf{fma}\left(b_2, b_2, -c \cdot a\right)} - b_2}\\
\mathbf{elif}\;b_2 \le 4.198650993474429809884798868723112488797 \cdot 10^{74}:\\
\;\;\;\;\frac{-b_2}{a} - \frac{\sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\frac{c}{b_2}, \frac{1}{2}, \frac{b_2}{a} \cdot -2\right)\\
\end{array}double f(double a, double b_2, double c) {
double r28367 = b_2;
double r28368 = -r28367;
double r28369 = r28367 * r28367;
double r28370 = a;
double r28371 = c;
double r28372 = r28370 * r28371;
double r28373 = r28369 - r28372;
double r28374 = sqrt(r28373);
double r28375 = r28368 - r28374;
double r28376 = r28375 / r28370;
return r28376;
}
double f(double a, double b_2, double c) {
double r28377 = b_2;
double r28378 = -3.7277239731487426e+105;
bool r28379 = r28377 <= r28378;
double r28380 = -0.5;
double r28381 = c;
double r28382 = r28381 / r28377;
double r28383 = r28380 * r28382;
double r28384 = 1.3645292833571162e-246;
bool r28385 = r28377 <= r28384;
double r28386 = a;
double r28387 = r28381 * r28386;
double r28388 = -r28387;
double r28389 = fma(r28377, r28377, r28388);
double r28390 = sqrt(r28389);
double r28391 = r28390 - r28377;
double r28392 = r28381 / r28391;
double r28393 = 4.19865099347443e+74;
bool r28394 = r28377 <= r28393;
double r28395 = -r28377;
double r28396 = r28395 / r28386;
double r28397 = r28377 * r28377;
double r28398 = r28386 * r28381;
double r28399 = r28397 - r28398;
double r28400 = sqrt(r28399);
double r28401 = r28400 / r28386;
double r28402 = r28396 - r28401;
double r28403 = 0.5;
double r28404 = r28377 / r28386;
double r28405 = -2.0;
double r28406 = r28404 * r28405;
double r28407 = fma(r28382, r28403, r28406);
double r28408 = r28394 ? r28402 : r28407;
double r28409 = r28385 ? r28392 : r28408;
double r28410 = r28379 ? r28383 : r28409;
return r28410;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
if b_2 < -3.7277239731487426e+105Initial program 59.9
Taylor expanded around -inf 2.4
if -3.7277239731487426e+105 < b_2 < 1.3645292833571162e-246Initial program 30.7
rmApplied flip--30.8
Simplified15.7
Simplified15.7
rmApplied *-un-lft-identity15.7
Applied *-un-lft-identity15.7
Applied *-un-lft-identity15.7
Applied times-frac15.7
Applied times-frac15.7
Simplified15.7
Simplified8.5
if 1.3645292833571162e-246 < b_2 < 4.19865099347443e+74Initial program 9.3
rmApplied div-sub9.3
if 4.19865099347443e+74 < b_2 Initial program 41.8
Taylor expanded around inf 5.3
Simplified5.3
Final simplification6.8
herbie shell --seed 2019322 +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))