\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -2.18698358163757920529281413894268206376 \cdot 10^{50}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le -3.2648782224884627498150304098269944547 \cdot 10^{-158}:\\
\;\;\;\;\left(\frac{\frac{1}{\sqrt{\sqrt{\mathsf{fma}\left(-c, a, b_2 \cdot b_2\right)} - b_2}}}{\sqrt[3]{a} \cdot \sqrt[3]{a}} \cdot \frac{c}{\sqrt{\sqrt{\sqrt{\mathsf{fma}\left(-c, a, b_2 \cdot b_2\right)} - b_2}}}\right) \cdot \frac{\frac{a}{\sqrt{\sqrt{\sqrt{\mathsf{fma}\left(-c, a, b_2 \cdot b_2\right)} - b_2}}}}{\sqrt[3]{a}}\\
\mathbf{elif}\;b_2 \le 2.750597423682242910828949792302222725036 \cdot 10^{107}:\\
\;\;\;\;\left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right) \cdot \frac{1}{a}\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\frac{1}{2}, \frac{c}{b_2}, -2 \cdot \frac{b_2}{a}\right)\\
\end{array}double f(double a, double b_2, double c) {
double r37879 = b_2;
double r37880 = -r37879;
double r37881 = r37879 * r37879;
double r37882 = a;
double r37883 = c;
double r37884 = r37882 * r37883;
double r37885 = r37881 - r37884;
double r37886 = sqrt(r37885);
double r37887 = r37880 - r37886;
double r37888 = r37887 / r37882;
return r37888;
}
double f(double a, double b_2, double c) {
double r37889 = b_2;
double r37890 = -2.186983581637579e+50;
bool r37891 = r37889 <= r37890;
double r37892 = -0.5;
double r37893 = c;
double r37894 = r37893 / r37889;
double r37895 = r37892 * r37894;
double r37896 = -3.2648782224884627e-158;
bool r37897 = r37889 <= r37896;
double r37898 = 1.0;
double r37899 = -r37893;
double r37900 = a;
double r37901 = r37889 * r37889;
double r37902 = fma(r37899, r37900, r37901);
double r37903 = sqrt(r37902);
double r37904 = r37903 - r37889;
double r37905 = sqrt(r37904);
double r37906 = r37898 / r37905;
double r37907 = cbrt(r37900);
double r37908 = r37907 * r37907;
double r37909 = r37906 / r37908;
double r37910 = sqrt(r37905);
double r37911 = r37893 / r37910;
double r37912 = r37909 * r37911;
double r37913 = r37900 / r37910;
double r37914 = r37913 / r37907;
double r37915 = r37912 * r37914;
double r37916 = 2.750597423682243e+107;
bool r37917 = r37889 <= r37916;
double r37918 = -r37889;
double r37919 = r37900 * r37893;
double r37920 = r37901 - r37919;
double r37921 = sqrt(r37920);
double r37922 = r37918 - r37921;
double r37923 = r37898 / r37900;
double r37924 = r37922 * r37923;
double r37925 = 0.5;
double r37926 = -2.0;
double r37927 = r37889 / r37900;
double r37928 = r37926 * r37927;
double r37929 = fma(r37925, r37894, r37928);
double r37930 = r37917 ? r37924 : r37929;
double r37931 = r37897 ? r37915 : r37930;
double r37932 = r37891 ? r37895 : r37931;
return r37932;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
if b_2 < -2.186983581637579e+50Initial program 58.2
Taylor expanded around -inf 4.0
if -2.186983581637579e+50 < b_2 < -3.2648782224884627e-158Initial program 37.2
rmApplied flip--37.3
Simplified17.8
Simplified17.8
rmApplied add-cube-cbrt18.6
Applied add-sqr-sqrt18.6
Applied *-un-lft-identity18.6
Applied times-frac18.6
Applied times-frac18.4
Simplified18.4
rmApplied *-un-lft-identity18.4
Applied cbrt-prod18.4
Applied add-sqr-sqrt18.4
Applied sqrt-prod18.4
Applied times-frac16.0
Applied times-frac12.7
Applied associate-*r*16.3
Simplified16.3
if -3.2648782224884627e-158 < b_2 < 2.750597423682243e+107Initial program 11.2
rmApplied div-inv11.3
if 2.750597423682243e+107 < b_2 Initial program 49.6
Taylor expanded around inf 3.0
Simplified3.0
Final simplification8.8
herbie shell --seed 2019235 +o rules:numerics
(FPCore (a b_2 c)
:name "quad2m (problem 3.2.1, negative)"
:precision binary64
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))