\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -4.78285893492843261 \cdot 10^{-126}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le 3.6627135292415903 \cdot 10^{111}:\\
\;\;\;\;\left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right) \cdot \frac{1}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{-2 \cdot b_2}{a}\\
\end{array}double f(double a, double b_2, double c) {
double r79052 = b_2;
double r79053 = -r79052;
double r79054 = r79052 * r79052;
double r79055 = a;
double r79056 = c;
double r79057 = r79055 * r79056;
double r79058 = r79054 - r79057;
double r79059 = sqrt(r79058);
double r79060 = r79053 - r79059;
double r79061 = r79060 / r79055;
return r79061;
}
double f(double a, double b_2, double c) {
double r79062 = b_2;
double r79063 = -4.7828589349284326e-126;
bool r79064 = r79062 <= r79063;
double r79065 = -0.5;
double r79066 = c;
double r79067 = r79066 / r79062;
double r79068 = r79065 * r79067;
double r79069 = 3.6627135292415903e+111;
bool r79070 = r79062 <= r79069;
double r79071 = -r79062;
double r79072 = r79062 * r79062;
double r79073 = a;
double r79074 = r79073 * r79066;
double r79075 = r79072 - r79074;
double r79076 = sqrt(r79075);
double r79077 = r79071 - r79076;
double r79078 = 1.0;
double r79079 = r79078 / r79073;
double r79080 = r79077 * r79079;
double r79081 = -2.0;
double r79082 = r79081 * r79062;
double r79083 = r79082 / r79073;
double r79084 = r79070 ? r79080 : r79083;
double r79085 = r79064 ? r79068 : r79084;
return r79085;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -4.7828589349284326e-126Initial program 51.3
Taylor expanded around -inf 11.3
if -4.7828589349284326e-126 < b_2 < 3.6627135292415903e+111Initial program 12.0
rmApplied div-inv12.1
if 3.6627135292415903e+111 < b_2 Initial program 49.7
rmApplied flip--63.3
Simplified62.3
Simplified62.3
Taylor expanded around 0 3.6
Final simplification10.6
herbie shell --seed 2020047
(FPCore (a b_2 c)
:name "NMSE problem 3.2.1"
:precision binary64
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))