\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -2.37749702272254886 \cdot 10^{101}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\
\mathbf{elif}\;b_2 \le 1.9238883452280037 \cdot 10^{-130}:\\
\;\;\;\;{\left(\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\right)}^{1}\\
\mathbf{elif}\;b_2 \le 4.01993084419163312 \cdot 10^{109}:\\
\;\;\;\;{\left(\frac{\frac{0 + a \cdot c}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}}{a}\right)}^{1}\\
\mathbf{else}:\\
\;\;\;\;{\left(\frac{-1}{2} \cdot \frac{c}{b_2}\right)}^{1}\\
\end{array}double f(double a, double b_2, double c) {
double r14913 = b_2;
double r14914 = -r14913;
double r14915 = r14913 * r14913;
double r14916 = a;
double r14917 = c;
double r14918 = r14916 * r14917;
double r14919 = r14915 - r14918;
double r14920 = sqrt(r14919);
double r14921 = r14914 + r14920;
double r14922 = r14921 / r14916;
return r14922;
}
double f(double a, double b_2, double c) {
double r14923 = b_2;
double r14924 = -2.377497022722549e+101;
bool r14925 = r14923 <= r14924;
double r14926 = 0.5;
double r14927 = c;
double r14928 = r14927 / r14923;
double r14929 = r14926 * r14928;
double r14930 = 2.0;
double r14931 = a;
double r14932 = r14923 / r14931;
double r14933 = r14930 * r14932;
double r14934 = r14929 - r14933;
double r14935 = 1.9238883452280037e-130;
bool r14936 = r14923 <= r14935;
double r14937 = -r14923;
double r14938 = r14923 * r14923;
double r14939 = r14931 * r14927;
double r14940 = r14938 - r14939;
double r14941 = sqrt(r14940);
double r14942 = r14937 + r14941;
double r14943 = r14942 / r14931;
double r14944 = 1.0;
double r14945 = pow(r14943, r14944);
double r14946 = 4.019930844191633e+109;
bool r14947 = r14923 <= r14946;
double r14948 = 0.0;
double r14949 = r14948 + r14939;
double r14950 = r14937 - r14941;
double r14951 = r14949 / r14950;
double r14952 = r14951 / r14931;
double r14953 = pow(r14952, r14944);
double r14954 = -0.5;
double r14955 = r14954 * r14928;
double r14956 = pow(r14955, r14944);
double r14957 = r14947 ? r14953 : r14956;
double r14958 = r14936 ? r14945 : r14957;
double r14959 = r14925 ? r14934 : r14958;
return r14959;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -2.377497022722549e+101Initial program 47.1
Taylor expanded around -inf 3.6
if -2.377497022722549e+101 < b_2 < 1.9238883452280037e-130Initial program 11.9
rmApplied pow111.9
if 1.9238883452280037e-130 < b_2 < 4.019930844191633e+109Initial program 40.3
rmApplied pow140.3
rmApplied flip-+40.3
Simplified15.5
if 4.019930844191633e+109 < b_2 Initial program 59.9
rmApplied pow159.9
Taylor expanded around inf 2.4
Final simplification9.2
herbie shell --seed 2020060 +o rules:numerics
(FPCore (a b_2 c)
:name "quad2p (problem 3.2.1, positive)"
:precision binary64
(/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))