\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -3.4003426496549383 \cdot 10^{-77}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le -1.466065355378786 \cdot 10^{-87}:\\
\;\;\;\;\frac{-b_2}{a} - \frac{\sqrt{1}}{\frac{a}{\sqrt{b_2 \cdot b_2 - a \cdot c}}}\\
\mathbf{elif}\;b_2 \le -6.27327853977469935 \cdot 10^{-139}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le 1.57632464397167146 \cdot 10^{69}:\\
\;\;\;\;\frac{-b_2}{a} - \frac{\sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{-b_2}{a} - \frac{b_2}{a}\\
\end{array}double f(double a, double b_2, double c) {
double r189090 = b_2;
double r189091 = -r189090;
double r189092 = r189090 * r189090;
double r189093 = a;
double r189094 = c;
double r189095 = r189093 * r189094;
double r189096 = r189092 - r189095;
double r189097 = sqrt(r189096);
double r189098 = r189091 - r189097;
double r189099 = r189098 / r189093;
return r189099;
}
double f(double a, double b_2, double c) {
double r189100 = b_2;
double r189101 = -3.4003426496549383e-77;
bool r189102 = r189100 <= r189101;
double r189103 = -0.5;
double r189104 = c;
double r189105 = r189104 / r189100;
double r189106 = r189103 * r189105;
double r189107 = -1.466065355378786e-87;
bool r189108 = r189100 <= r189107;
double r189109 = -r189100;
double r189110 = a;
double r189111 = r189109 / r189110;
double r189112 = 1.0;
double r189113 = sqrt(r189112);
double r189114 = r189100 * r189100;
double r189115 = r189110 * r189104;
double r189116 = r189114 - r189115;
double r189117 = sqrt(r189116);
double r189118 = r189110 / r189117;
double r189119 = r189113 / r189118;
double r189120 = r189111 - r189119;
double r189121 = -6.273278539774699e-139;
bool r189122 = r189100 <= r189121;
double r189123 = 1.5763246439716715e+69;
bool r189124 = r189100 <= r189123;
double r189125 = r189117 / r189110;
double r189126 = r189111 - r189125;
double r189127 = r189100 / r189110;
double r189128 = r189111 - r189127;
double r189129 = r189124 ? r189126 : r189128;
double r189130 = r189122 ? r189106 : r189129;
double r189131 = r189108 ? r189120 : r189130;
double r189132 = r189102 ? r189106 : r189131;
return r189132;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -3.4003426496549383e-77 or -1.466065355378786e-87 < b_2 < -6.273278539774699e-139Initial program 51.1
Taylor expanded around -inf 11.6
if -3.4003426496549383e-77 < b_2 < -1.466065355378786e-87Initial program 28.6
rmApplied div-sub28.6
rmApplied *-un-lft-identity28.6
Applied sqrt-prod28.6
Applied associate-/l*28.8
if -6.273278539774699e-139 < b_2 < 1.5763246439716715e+69Initial program 11.5
rmApplied div-sub11.5
if 1.5763246439716715e+69 < b_2 Initial program 42.5
rmApplied div-sub42.5
rmApplied *-un-lft-identity42.5
Applied sqrt-prod42.5
Applied associate-/l*42.6
Taylor expanded around 0 5.0
Final simplification10.5
herbie shell --seed 2020020 +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))