\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -1.3599228730895225 \cdot 10^{+90}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - \frac{b_2}{a} \cdot 2\\
\mathbf{elif}\;b_2 \le 3.1295384133612364 \cdot 10^{-73}:\\
\;\;\;\;\frac{\sqrt{b_2 \cdot b_2 - c \cdot a} - b_2}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{c}{b_2} \cdot \frac{-1}{2}\\
\end{array}double f(double a, double b_2, double c) {
double r351895 = b_2;
double r351896 = -r351895;
double r351897 = r351895 * r351895;
double r351898 = a;
double r351899 = c;
double r351900 = r351898 * r351899;
double r351901 = r351897 - r351900;
double r351902 = sqrt(r351901);
double r351903 = r351896 + r351902;
double r351904 = r351903 / r351898;
return r351904;
}
double f(double a, double b_2, double c) {
double r351905 = b_2;
double r351906 = -1.3599228730895225e+90;
bool r351907 = r351905 <= r351906;
double r351908 = 0.5;
double r351909 = c;
double r351910 = r351909 / r351905;
double r351911 = r351908 * r351910;
double r351912 = a;
double r351913 = r351905 / r351912;
double r351914 = 2.0;
double r351915 = r351913 * r351914;
double r351916 = r351911 - r351915;
double r351917 = 3.1295384133612364e-73;
bool r351918 = r351905 <= r351917;
double r351919 = r351905 * r351905;
double r351920 = r351909 * r351912;
double r351921 = r351919 - r351920;
double r351922 = sqrt(r351921);
double r351923 = r351922 - r351905;
double r351924 = r351923 / r351912;
double r351925 = -0.5;
double r351926 = r351910 * r351925;
double r351927 = r351918 ? r351924 : r351926;
double r351928 = r351907 ? r351916 : r351927;
return r351928;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -1.3599228730895225e+90Initial program 41.6
Simplified41.6
Taylor expanded around inf 41.6
Simplified41.6
Taylor expanded around -inf 3.8
if -1.3599228730895225e+90 < b_2 < 3.1295384133612364e-73Initial program 12.8
Simplified12.8
Taylor expanded around inf 12.8
Simplified12.8
if 3.1295384133612364e-73 < b_2 Initial program 52.3
Simplified52.3
Taylor expanded around inf 52.3
Simplified52.3
Taylor expanded around inf 9.0
Final simplification9.8
herbie shell --seed 2019152
(FPCore (a b_2 c)
:name "quad2p (problem 3.2.1, positive)"
(/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))