\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -4.8621678288459276 \cdot 10^{80}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le -5.07965843072761894 \cdot 10^{-161}:\\
\;\;\;\;\frac{1}{a} \cdot \frac{0 + a \cdot c}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}\\
\mathbf{elif}\;b_2 \le 1.2919983862558445 \cdot 10^{30}:\\
\;\;\;\;\frac{1}{\frac{a}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}}\\
\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 r73704 = b_2;
double r73705 = -r73704;
double r73706 = r73704 * r73704;
double r73707 = a;
double r73708 = c;
double r73709 = r73707 * r73708;
double r73710 = r73706 - r73709;
double r73711 = sqrt(r73710);
double r73712 = r73705 - r73711;
double r73713 = r73712 / r73707;
return r73713;
}
double f(double a, double b_2, double c) {
double r73714 = b_2;
double r73715 = -4.862167828845928e+80;
bool r73716 = r73714 <= r73715;
double r73717 = -0.5;
double r73718 = c;
double r73719 = r73718 / r73714;
double r73720 = r73717 * r73719;
double r73721 = -5.079658430727619e-161;
bool r73722 = r73714 <= r73721;
double r73723 = 1.0;
double r73724 = a;
double r73725 = r73723 / r73724;
double r73726 = 0.0;
double r73727 = r73724 * r73718;
double r73728 = r73726 + r73727;
double r73729 = r73714 * r73714;
double r73730 = r73729 - r73727;
double r73731 = sqrt(r73730);
double r73732 = r73731 - r73714;
double r73733 = r73728 / r73732;
double r73734 = r73725 * r73733;
double r73735 = 1.2919983862558445e+30;
bool r73736 = r73714 <= r73735;
double r73737 = -r73714;
double r73738 = r73737 - r73731;
double r73739 = r73724 / r73738;
double r73740 = r73723 / r73739;
double r73741 = 0.5;
double r73742 = r73741 * r73719;
double r73743 = 2.0;
double r73744 = r73714 / r73724;
double r73745 = r73743 * r73744;
double r73746 = r73742 - r73745;
double r73747 = r73736 ? r73740 : r73746;
double r73748 = r73722 ? r73734 : r73747;
double r73749 = r73716 ? r73720 : r73748;
return r73749;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -4.862167828845928e+80Initial program 58.0
Taylor expanded around -inf 3.1
if -4.862167828845928e+80 < b_2 < -5.079658430727619e-161Initial program 36.9
rmApplied clear-num36.9
rmApplied div-inv36.9
Applied add-cube-cbrt36.9
Applied times-frac36.9
Simplified36.9
Simplified36.9
rmApplied add-exp-log40.7
rmApplied flip--40.7
Simplified18.7
Simplified16.2
if -5.079658430727619e-161 < b_2 < 1.2919983862558445e+30Initial program 12.6
rmApplied clear-num12.7
if 1.2919983862558445e+30 < b_2 Initial program 34.2
Taylor expanded around inf 6.6
Final simplification9.7
herbie shell --seed 2020100 +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))