\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -5.6179897107029005 \cdot 10^{+143}:\\
\;\;\;\;\mathsf{fma}\left(-2, \left(\frac{b_2}{a}\right), \left(\frac{1}{2} \cdot \frac{c}{b_2}\right)\right)\\
\mathbf{elif}\;b_2 \le 5.046853365273247 \cdot 10^{-144}:\\
\;\;\;\;\frac{1}{a} \cdot \left(\sqrt{b_2 \cdot b_2 - c \cdot a} - b_2\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\end{array}double f(double a, double b_2, double c) {
double r585871 = b_2;
double r585872 = -r585871;
double r585873 = r585871 * r585871;
double r585874 = a;
double r585875 = c;
double r585876 = r585874 * r585875;
double r585877 = r585873 - r585876;
double r585878 = sqrt(r585877);
double r585879 = r585872 + r585878;
double r585880 = r585879 / r585874;
return r585880;
}
double f(double a, double b_2, double c) {
double r585881 = b_2;
double r585882 = -5.6179897107029005e+143;
bool r585883 = r585881 <= r585882;
double r585884 = -2.0;
double r585885 = a;
double r585886 = r585881 / r585885;
double r585887 = 0.5;
double r585888 = c;
double r585889 = r585888 / r585881;
double r585890 = r585887 * r585889;
double r585891 = fma(r585884, r585886, r585890);
double r585892 = 5.046853365273247e-144;
bool r585893 = r585881 <= r585892;
double r585894 = 1.0;
double r585895 = r585894 / r585885;
double r585896 = r585881 * r585881;
double r585897 = r585888 * r585885;
double r585898 = r585896 - r585897;
double r585899 = sqrt(r585898);
double r585900 = r585899 - r585881;
double r585901 = r585895 * r585900;
double r585902 = -0.5;
double r585903 = r585902 * r585889;
double r585904 = r585893 ? r585901 : r585903;
double r585905 = r585883 ? r585891 : r585904;
return r585905;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
if b_2 < -5.6179897107029005e+143Initial program 57.1
Simplified57.1
Taylor expanded around -inf 2.1
Simplified2.1
if -5.6179897107029005e+143 < b_2 < 5.046853365273247e-144Initial program 10.3
Simplified10.3
rmApplied clear-num10.4
rmApplied associate-/r/10.4
if 5.046853365273247e-144 < b_2 Initial program 49.8
Simplified49.8
Taylor expanded around inf 11.6
Final simplification10.0
herbie shell --seed 2019132 +o rules:numerics
(FPCore (a b_2 c)
:name "quad2p (problem 3.2.1, positive)"
(/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))