\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -2.271875817960049862049445045905922921165 \cdot 10^{-81}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le 3.583649041028097672662453906912522703022 \cdot 10^{84}:\\
\;\;\;\;\frac{\left(-b_2\right) - \sqrt{\mathsf{fma}\left(-c, a, b_2 \cdot b_2\right)}}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(-b_2\right) - b_2}{a}\\
\end{array}double f(double a, double b_2, double c) {
double r51051 = b_2;
double r51052 = -r51051;
double r51053 = r51051 * r51051;
double r51054 = a;
double r51055 = c;
double r51056 = r51054 * r51055;
double r51057 = r51053 - r51056;
double r51058 = sqrt(r51057);
double r51059 = r51052 - r51058;
double r51060 = r51059 / r51054;
return r51060;
}
double f(double a, double b_2, double c) {
double r51061 = b_2;
double r51062 = -2.27187581796005e-81;
bool r51063 = r51061 <= r51062;
double r51064 = -0.5;
double r51065 = c;
double r51066 = r51065 / r51061;
double r51067 = r51064 * r51066;
double r51068 = 3.5836490410280977e+84;
bool r51069 = r51061 <= r51068;
double r51070 = -r51061;
double r51071 = -r51065;
double r51072 = a;
double r51073 = r51061 * r51061;
double r51074 = fma(r51071, r51072, r51073);
double r51075 = sqrt(r51074);
double r51076 = r51070 - r51075;
double r51077 = r51076 / r51072;
double r51078 = r51070 - r51061;
double r51079 = r51078 / r51072;
double r51080 = r51069 ? r51077 : r51079;
double r51081 = r51063 ? r51067 : r51080;
return r51081;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
if b_2 < -2.27187581796005e-81Initial program 53.4
Simplified53.4
Taylor expanded around -inf 8.8
if -2.27187581796005e-81 < b_2 < 3.5836490410280977e+84Initial program 13.1
Simplified13.1
Taylor expanded around 0 13.1
Simplified13.1
if 3.5836490410280977e+84 < b_2 Initial program 43.9
Simplified43.9
Taylor expanded around 0 3.7
Final simplification9.8
herbie shell --seed 2019194 +o rules:numerics
(FPCore (a b_2 c)
:name "NMSE problem 3.2.1"
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))