\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -4.1515494582665793 \cdot 10^{-119}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le 3.669945833512195 \cdot 10^{117}:\\
\;\;\;\;\left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right) \cdot \frac{1}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\
\end{array}double f(double a, double b_2, double c) {
double r47489 = b_2;
double r47490 = -r47489;
double r47491 = r47489 * r47489;
double r47492 = a;
double r47493 = c;
double r47494 = r47492 * r47493;
double r47495 = r47491 - r47494;
double r47496 = sqrt(r47495);
double r47497 = r47490 - r47496;
double r47498 = r47497 / r47492;
return r47498;
}
double f(double a, double b_2, double c) {
double r47499 = b_2;
double r47500 = -4.1515494582665793e-119;
bool r47501 = r47499 <= r47500;
double r47502 = -0.5;
double r47503 = c;
double r47504 = r47503 / r47499;
double r47505 = r47502 * r47504;
double r47506 = 3.669945833512195e+117;
bool r47507 = r47499 <= r47506;
double r47508 = -r47499;
double r47509 = r47499 * r47499;
double r47510 = a;
double r47511 = r47510 * r47503;
double r47512 = r47509 - r47511;
double r47513 = sqrt(r47512);
double r47514 = r47508 - r47513;
double r47515 = 1.0;
double r47516 = r47515 / r47510;
double r47517 = r47514 * r47516;
double r47518 = 0.5;
double r47519 = r47518 * r47504;
double r47520 = 2.0;
double r47521 = r47499 / r47510;
double r47522 = r47520 * r47521;
double r47523 = r47519 - r47522;
double r47524 = r47507 ? r47517 : r47523;
double r47525 = r47501 ? r47505 : r47524;
return r47525;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -4.1515494582665793e-119Initial program 51.5
Taylor expanded around -inf 11.4
if -4.1515494582665793e-119 < b_2 < 3.669945833512195e+117Initial program 11.7
rmApplied div-inv11.8
if 3.669945833512195e+117 < b_2 Initial program 52.2
Taylor expanded around inf 2.9
Final simplification10.4
herbie shell --seed 2020081 +o rules:numerics
(FPCore (a b_2 c)
:name "NMSE problem 3.2.1"
:precision binary64
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))