\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -7.363255598823911 \cdot 10^{-15}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le -1.823572975982288 \cdot 10^{-27}:\\
\;\;\;\;\frac{\frac{b_2 \cdot b_2 - \left(b_2 \cdot b_2 - c \cdot a\right)}{a}}{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - c \cdot a}}\\
\mathbf{elif}\;b_2 \le -2.3344326820285623 \cdot 10^{-123}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le 1.6691257204922504 \cdot 10^{+85}:\\
\;\;\;\;\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - c \cdot a}}{a}\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\frac{b_2}{a}, -2, \frac{\frac{c}{b_2}}{2}\right)\\
\end{array}double f(double a, double b_2, double c) {
double r2830707 = b_2;
double r2830708 = -r2830707;
double r2830709 = r2830707 * r2830707;
double r2830710 = a;
double r2830711 = c;
double r2830712 = r2830710 * r2830711;
double r2830713 = r2830709 - r2830712;
double r2830714 = sqrt(r2830713);
double r2830715 = r2830708 - r2830714;
double r2830716 = r2830715 / r2830710;
return r2830716;
}
double f(double a, double b_2, double c) {
double r2830717 = b_2;
double r2830718 = -7.363255598823911e-15;
bool r2830719 = r2830717 <= r2830718;
double r2830720 = -0.5;
double r2830721 = c;
double r2830722 = r2830721 / r2830717;
double r2830723 = r2830720 * r2830722;
double r2830724 = -1.823572975982288e-27;
bool r2830725 = r2830717 <= r2830724;
double r2830726 = r2830717 * r2830717;
double r2830727 = a;
double r2830728 = r2830721 * r2830727;
double r2830729 = r2830726 - r2830728;
double r2830730 = r2830726 - r2830729;
double r2830731 = r2830730 / r2830727;
double r2830732 = -r2830717;
double r2830733 = sqrt(r2830729);
double r2830734 = r2830732 + r2830733;
double r2830735 = r2830731 / r2830734;
double r2830736 = -2.3344326820285623e-123;
bool r2830737 = r2830717 <= r2830736;
double r2830738 = 1.6691257204922504e+85;
bool r2830739 = r2830717 <= r2830738;
double r2830740 = r2830732 - r2830733;
double r2830741 = r2830740 / r2830727;
double r2830742 = r2830717 / r2830727;
double r2830743 = -2.0;
double r2830744 = 2.0;
double r2830745 = r2830722 / r2830744;
double r2830746 = fma(r2830742, r2830743, r2830745);
double r2830747 = r2830739 ? r2830741 : r2830746;
double r2830748 = r2830737 ? r2830723 : r2830747;
double r2830749 = r2830725 ? r2830735 : r2830748;
double r2830750 = r2830719 ? r2830723 : r2830749;
return r2830750;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
if b_2 < -7.363255598823911e-15 or -1.823572975982288e-27 < b_2 < -2.3344326820285623e-123Initial program 50.8
Taylor expanded around -inf 10.6
if -7.363255598823911e-15 < b_2 < -1.823572975982288e-27Initial program 36.1
rmApplied clear-num36.1
rmApplied flip--36.2
Applied associate-/r/36.2
Applied associate-/r*36.2
Simplified36.1
if -2.3344326820285623e-123 < b_2 < 1.6691257204922504e+85Initial program 12.6
rmApplied div-inv12.7
rmApplied un-div-inv12.6
if 1.6691257204922504e+85 < b_2 Initial program 42.9
rmApplied div-inv42.9
rmApplied un-div-inv42.9
Taylor expanded around inf 3.6
Simplified3.6
Final simplification10.6
herbie shell --seed 2019163 +o rules:numerics
(FPCore (a b_2 c)
:name "NMSE problem 3.2.1"
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))