\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{b_2 \cdot b_2 - a \cdot c} - 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}:\\
\;\;\;\;\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 r63958 = b_2;
double r63959 = -r63958;
double r63960 = r63958 * r63958;
double r63961 = a;
double r63962 = c;
double r63963 = r63961 * r63962;
double r63964 = r63960 - r63963;
double r63965 = sqrt(r63964);
double r63966 = r63959 - r63965;
double r63967 = r63966 / r63961;
return r63967;
}
double f(double a, double b_2, double c) {
double r63968 = b_2;
double r63969 = -3.7277239731487426e+105;
bool r63970 = r63968 <= r63969;
double r63971 = -0.5;
double r63972 = c;
double r63973 = r63972 / r63968;
double r63974 = r63971 * r63973;
double r63975 = 1.3645292833571162e-246;
bool r63976 = r63968 <= r63975;
double r63977 = r63968 * r63968;
double r63978 = a;
double r63979 = r63978 * r63972;
double r63980 = r63977 - r63979;
double r63981 = sqrt(r63980);
double r63982 = r63981 - r63968;
double r63983 = r63972 / r63982;
double r63984 = 4.19865099347443e+74;
bool r63985 = r63968 <= r63984;
double r63986 = -r63968;
double r63987 = r63986 / r63978;
double r63988 = r63981 / r63978;
double r63989 = r63987 - r63988;
double r63990 = 0.5;
double r63991 = r63990 * r63973;
double r63992 = 2.0;
double r63993 = r63968 / r63978;
double r63994 = r63992 * r63993;
double r63995 = r63991 - r63994;
double r63996 = r63985 ? r63989 : r63995;
double r63997 = r63976 ? r63983 : r63996;
double r63998 = r63970 ? r63974 : r63997;
return r63998;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
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 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
Final simplification6.8
herbie shell --seed 2019322
(FPCore (a b_2 c)
:name "NMSE problem 3.2.1"
:precision binary64
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))