\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -6.565090470125855 \cdot 10^{+141}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le -5.587449545143923 \cdot 10^{-253}:\\
\;\;\;\;\frac{\frac{1}{\sqrt{b_2 \cdot b_2 - c \cdot a} - b_2}}{\sqrt[3]{a}} \cdot \left(c \cdot \sqrt[3]{a}\right)\\
\mathbf{elif}\;b_2 \le 9.336288915836175 \cdot 10^{+83}:\\
\;\;\;\;\left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - c \cdot a}\right) \cdot \frac{1}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - \frac{b_2}{a} \cdot 2\\
\end{array}double f(double a, double b_2, double c) {
double r871948 = b_2;
double r871949 = -r871948;
double r871950 = r871948 * r871948;
double r871951 = a;
double r871952 = c;
double r871953 = r871951 * r871952;
double r871954 = r871950 - r871953;
double r871955 = sqrt(r871954);
double r871956 = r871949 - r871955;
double r871957 = r871956 / r871951;
return r871957;
}
double f(double a, double b_2, double c) {
double r871958 = b_2;
double r871959 = -6.565090470125855e+141;
bool r871960 = r871958 <= r871959;
double r871961 = -0.5;
double r871962 = c;
double r871963 = r871962 / r871958;
double r871964 = r871961 * r871963;
double r871965 = -5.587449545143923e-253;
bool r871966 = r871958 <= r871965;
double r871967 = 1.0;
double r871968 = r871958 * r871958;
double r871969 = a;
double r871970 = r871962 * r871969;
double r871971 = r871968 - r871970;
double r871972 = sqrt(r871971);
double r871973 = r871972 - r871958;
double r871974 = r871967 / r871973;
double r871975 = cbrt(r871969);
double r871976 = r871974 / r871975;
double r871977 = r871962 * r871975;
double r871978 = r871976 * r871977;
double r871979 = 9.336288915836175e+83;
bool r871980 = r871958 <= r871979;
double r871981 = -r871958;
double r871982 = r871981 - r871972;
double r871983 = r871967 / r871969;
double r871984 = r871982 * r871983;
double r871985 = 0.5;
double r871986 = r871985 * r871963;
double r871987 = r871958 / r871969;
double r871988 = 2.0;
double r871989 = r871987 * r871988;
double r871990 = r871986 - r871989;
double r871991 = r871980 ? r871984 : r871990;
double r871992 = r871966 ? r871978 : r871991;
double r871993 = r871960 ? r871964 : r871992;
return r871993;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -6.565090470125855e+141Initial program 61.3
Taylor expanded around -inf 1.7
if -6.565090470125855e+141 < b_2 < -5.587449545143923e-253Initial program 36.7
rmApplied flip--36.8
Simplified16.9
Simplified16.9
rmApplied add-cube-cbrt17.6
Applied div-inv17.7
Applied times-frac16.2
Simplified13.5
Taylor expanded around inf 37.8
Simplified9.6
if -5.587449545143923e-253 < b_2 < 9.336288915836175e+83Initial program 9.6
rmApplied div-inv9.7
if 9.336288915836175e+83 < b_2 Initial program 42.5
Taylor expanded around inf 4.1
Final simplification7.2
herbie shell --seed 2019142
(FPCore (a b_2 c)
:name "quad2m (problem 3.2.1, negative)"
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))