\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -2.44666123176016780594980092347699614144 \cdot 10^{151}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le 1.12333471942415508636906215603303726066 \cdot 10^{-161}:\\
\;\;\;\;\frac{c}{\sqrt{\mathsf{fma}\left(b_2, b_2, -c \cdot a\right)} - b_2}\\
\mathbf{elif}\;b_2 \le 1.104385716015500810854693836311545666138 \cdot 10^{144}:\\
\;\;\;\;\frac{1}{\frac{a}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}}\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\frac{1}{2}, \frac{c}{b_2}, \frac{b_2}{a} \cdot -2\right)\\
\end{array}double f(double a, double b_2, double c) {
double r58757 = b_2;
double r58758 = -r58757;
double r58759 = r58757 * r58757;
double r58760 = a;
double r58761 = c;
double r58762 = r58760 * r58761;
double r58763 = r58759 - r58762;
double r58764 = sqrt(r58763);
double r58765 = r58758 - r58764;
double r58766 = r58765 / r58760;
return r58766;
}
double f(double a, double b_2, double c) {
double r58767 = b_2;
double r58768 = -2.4466612317601678e+151;
bool r58769 = r58767 <= r58768;
double r58770 = -0.5;
double r58771 = c;
double r58772 = r58771 / r58767;
double r58773 = r58770 * r58772;
double r58774 = 1.123334719424155e-161;
bool r58775 = r58767 <= r58774;
double r58776 = a;
double r58777 = r58771 * r58776;
double r58778 = -r58777;
double r58779 = fma(r58767, r58767, r58778);
double r58780 = sqrt(r58779);
double r58781 = r58780 - r58767;
double r58782 = r58771 / r58781;
double r58783 = 1.1043857160155008e+144;
bool r58784 = r58767 <= r58783;
double r58785 = 1.0;
double r58786 = -r58767;
double r58787 = r58767 * r58767;
double r58788 = r58776 * r58771;
double r58789 = r58787 - r58788;
double r58790 = sqrt(r58789);
double r58791 = r58786 - r58790;
double r58792 = r58776 / r58791;
double r58793 = r58785 / r58792;
double r58794 = 0.5;
double r58795 = r58767 / r58776;
double r58796 = -2.0;
double r58797 = r58795 * r58796;
double r58798 = fma(r58794, r58772, r58797);
double r58799 = r58784 ? r58793 : r58798;
double r58800 = r58775 ? r58782 : r58799;
double r58801 = r58769 ? r58773 : r58800;
return r58801;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
if b_2 < -2.4466612317601678e+151Initial program 63.7
Taylor expanded around -inf 1.2
if -2.4466612317601678e+151 < b_2 < 1.123334719424155e-161Initial program 31.1
rmApplied flip--31.3
Simplified16.2
Simplified16.2
rmApplied *-un-lft-identity16.2
Applied *-un-lft-identity16.2
Applied *-un-lft-identity16.2
Applied times-frac16.2
Applied times-frac16.2
Simplified16.2
Simplified9.4
if 1.123334719424155e-161 < b_2 < 1.1043857160155008e+144Initial program 6.1
rmApplied clear-num6.3
if 1.1043857160155008e+144 < b_2 Initial program 59.6
Taylor expanded around inf 2.3
Simplified2.3
Final simplification6.3
herbie shell --seed 2019325 +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))