\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -3.263941314600607 \cdot 10^{+152}:\\
\;\;\;\;\frac{\mathsf{fma}\left(\frac{1}{2}, \left(\frac{a}{\frac{b_2}{c}}\right), \left(b_2 \cdot -2\right)\right)}{a}\\
\mathbf{elif}\;b_2 \le -4.687918346756617 \cdot 10^{-254}:\\
\;\;\;\;\frac{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}{a}\\
\mathbf{elif}\;b_2 \le 1.817261397602966 \cdot 10^{+121}:\\
\;\;\;\;\frac{-c}{\sqrt{b_2 \cdot b_2 - a \cdot c} + b_2}\\
\mathbf{else}:\\
\;\;\;\;\frac{-c}{\mathsf{fma}\left(\left(c \cdot \frac{a}{b_2}\right), \frac{-1}{2}, \left(b_2 \cdot 2\right)\right)}\\
\end{array}double f(double a, double b_2, double c) {
double r4890392 = b_2;
double r4890393 = -r4890392;
double r4890394 = r4890392 * r4890392;
double r4890395 = a;
double r4890396 = c;
double r4890397 = r4890395 * r4890396;
double r4890398 = r4890394 - r4890397;
double r4890399 = sqrt(r4890398);
double r4890400 = r4890393 + r4890399;
double r4890401 = r4890400 / r4890395;
return r4890401;
}
double f(double a, double b_2, double c) {
double r4890402 = b_2;
double r4890403 = -3.263941314600607e+152;
bool r4890404 = r4890402 <= r4890403;
double r4890405 = 0.5;
double r4890406 = a;
double r4890407 = c;
double r4890408 = r4890402 / r4890407;
double r4890409 = r4890406 / r4890408;
double r4890410 = -2.0;
double r4890411 = r4890402 * r4890410;
double r4890412 = fma(r4890405, r4890409, r4890411);
double r4890413 = r4890412 / r4890406;
double r4890414 = -4.687918346756617e-254;
bool r4890415 = r4890402 <= r4890414;
double r4890416 = r4890402 * r4890402;
double r4890417 = r4890406 * r4890407;
double r4890418 = r4890416 - r4890417;
double r4890419 = sqrt(r4890418);
double r4890420 = r4890419 - r4890402;
double r4890421 = r4890420 / r4890406;
double r4890422 = 1.817261397602966e+121;
bool r4890423 = r4890402 <= r4890422;
double r4890424 = -r4890407;
double r4890425 = r4890419 + r4890402;
double r4890426 = r4890424 / r4890425;
double r4890427 = r4890406 / r4890402;
double r4890428 = r4890407 * r4890427;
double r4890429 = -0.5;
double r4890430 = 2.0;
double r4890431 = r4890402 * r4890430;
double r4890432 = fma(r4890428, r4890429, r4890431);
double r4890433 = r4890424 / r4890432;
double r4890434 = r4890423 ? r4890426 : r4890433;
double r4890435 = r4890415 ? r4890421 : r4890434;
double r4890436 = r4890404 ? r4890413 : r4890435;
return r4890436;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
if b_2 < -3.263941314600607e+152Initial program 60.1
Simplified60.1
Taylor expanded around -inf 11.7
Simplified2.4
if -3.263941314600607e+152 < b_2 < -4.687918346756617e-254Initial program 7.8
Simplified7.8
rmApplied div-inv8.0
rmApplied associate-*r/7.8
Simplified7.8
if -4.687918346756617e-254 < b_2 < 1.817261397602966e+121Initial program 31.6
Simplified31.6
rmApplied flip--31.8
Simplified15.5
rmApplied distribute-frac-neg15.5
Applied distribute-frac-neg15.5
Simplified8.7
if 1.817261397602966e+121 < b_2 Initial program 59.8
Simplified59.8
rmApplied flip--59.9
Simplified34.1
rmApplied distribute-frac-neg34.1
Applied distribute-frac-neg34.1
Simplified32.8
Taylor expanded around inf 7.2
Simplified2.3
Final simplification6.4
herbie shell --seed 2019128 +o rules:numerics
(FPCore (a b_2 c)
:name "quad2p (problem 3.2.1, positive)"
(/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))