\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -3.396811349079212 \cdot 10^{+61}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le 1.7036165226371234 \cdot 10^{-298}:\\
\;\;\;\;\frac{c}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}\\
\mathbf{elif}\;b_2 \le 2.777729270705496 \cdot 10^{+74}:\\
\;\;\;\;\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{-2 \cdot b_2}{a}\\
\end{array}double f(double a, double b_2, double c) {
double r1967062 = b_2;
double r1967063 = -r1967062;
double r1967064 = r1967062 * r1967062;
double r1967065 = a;
double r1967066 = c;
double r1967067 = r1967065 * r1967066;
double r1967068 = r1967064 - r1967067;
double r1967069 = sqrt(r1967068);
double r1967070 = r1967063 - r1967069;
double r1967071 = r1967070 / r1967065;
return r1967071;
}
double f(double a, double b_2, double c) {
double r1967072 = b_2;
double r1967073 = -3.396811349079212e+61;
bool r1967074 = r1967072 <= r1967073;
double r1967075 = -0.5;
double r1967076 = c;
double r1967077 = r1967076 / r1967072;
double r1967078 = r1967075 * r1967077;
double r1967079 = 1.7036165226371234e-298;
bool r1967080 = r1967072 <= r1967079;
double r1967081 = r1967072 * r1967072;
double r1967082 = a;
double r1967083 = r1967082 * r1967076;
double r1967084 = r1967081 - r1967083;
double r1967085 = sqrt(r1967084);
double r1967086 = r1967085 - r1967072;
double r1967087 = r1967076 / r1967086;
double r1967088 = 2.777729270705496e+74;
bool r1967089 = r1967072 <= r1967088;
double r1967090 = -r1967072;
double r1967091 = r1967090 - r1967085;
double r1967092 = r1967091 / r1967082;
double r1967093 = -2.0;
double r1967094 = r1967093 * r1967072;
double r1967095 = r1967094 / r1967082;
double r1967096 = r1967089 ? r1967092 : r1967095;
double r1967097 = r1967080 ? r1967087 : r1967096;
double r1967098 = r1967074 ? r1967078 : r1967097;
return r1967098;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -3.396811349079212e+61Initial program 57.2
Taylor expanded around -inf 3.0
if -3.396811349079212e+61 < b_2 < 1.7036165226371234e-298Initial program 29.7
rmApplied add-sqr-sqrt29.7
Applied sqrt-prod30.4
rmApplied flip--30.5
Simplified17.1
Simplified17.0
rmApplied *-un-lft-identity17.0
Applied *-un-lft-identity17.0
Applied *-un-lft-identity17.0
Applied times-frac17.0
Applied times-frac17.0
Simplified17.0
Simplified16.5
Taylor expanded around -inf 9.5
if 1.7036165226371234e-298 < b_2 < 2.777729270705496e+74Initial program 9.6
if 2.777729270705496e+74 < b_2 Initial program 38.9
rmApplied add-sqr-sqrt38.9
Applied sqrt-prod39.0
rmApplied flip--58.6
Simplified60.9
Simplified61.0
Taylor expanded around 0 4.4
Final simplification6.8
herbie shell --seed 2019130
(FPCore (a b_2 c)
:name "NMSE problem 3.2.1"
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))