\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -3.766148915908884171942137020871314382353 \cdot 10^{131}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\
\mathbf{elif}\;b_2 \le -2.981443107382582658022271728267487907499 \cdot 10^{-294}:\\
\;\;\;\;\frac{1}{\frac{a}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}\\
\mathbf{elif}\;b_2 \le 3.310436447834858066850098837567764712113 \cdot 10^{94}:\\
\;\;\;\;\frac{\frac{1}{a} \cdot 0 + 1 \cdot c}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}\\
\mathbf{else}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\end{array}double f(double a, double b_2, double c) {
double r22722 = b_2;
double r22723 = -r22722;
double r22724 = r22722 * r22722;
double r22725 = a;
double r22726 = c;
double r22727 = r22725 * r22726;
double r22728 = r22724 - r22727;
double r22729 = sqrt(r22728);
double r22730 = r22723 + r22729;
double r22731 = r22730 / r22725;
return r22731;
}
double f(double a, double b_2, double c) {
double r22732 = b_2;
double r22733 = -3.766148915908884e+131;
bool r22734 = r22732 <= r22733;
double r22735 = 0.5;
double r22736 = c;
double r22737 = r22736 / r22732;
double r22738 = r22735 * r22737;
double r22739 = 2.0;
double r22740 = a;
double r22741 = r22732 / r22740;
double r22742 = r22739 * r22741;
double r22743 = r22738 - r22742;
double r22744 = -2.9814431073825827e-294;
bool r22745 = r22732 <= r22744;
double r22746 = 1.0;
double r22747 = r22732 * r22732;
double r22748 = r22740 * r22736;
double r22749 = r22747 - r22748;
double r22750 = sqrt(r22749);
double r22751 = r22750 - r22732;
double r22752 = r22740 / r22751;
double r22753 = r22746 / r22752;
double r22754 = 3.310436447834858e+94;
bool r22755 = r22732 <= r22754;
double r22756 = r22746 / r22740;
double r22757 = 0.0;
double r22758 = r22756 * r22757;
double r22759 = r22746 * r22736;
double r22760 = r22758 + r22759;
double r22761 = -r22732;
double r22762 = r22761 - r22750;
double r22763 = r22760 / r22762;
double r22764 = -0.5;
double r22765 = r22764 * r22737;
double r22766 = r22755 ? r22763 : r22765;
double r22767 = r22745 ? r22753 : r22766;
double r22768 = r22734 ? r22743 : r22767;
return r22768;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -3.766148915908884e+131Initial program 55.0
Taylor expanded around -inf 3.1
if -3.766148915908884e+131 < b_2 < -2.9814431073825827e-294Initial program 9.4
rmApplied clear-num9.5
Simplified9.5
if -2.9814431073825827e-294 < b_2 < 3.310436447834858e+94Initial program 31.1
rmApplied div-inv31.1
rmApplied flip-+31.1
Applied associate-*l/31.2
Simplified15.1
rmApplied *-un-lft-identity15.1
Applied *-un-lft-identity15.1
Applied times-frac15.1
Applied associate-*l*15.1
Simplified8.8
if 3.310436447834858e+94 < b_2 Initial program 59.2
Taylor expanded around inf 2.5
Final simplification6.8
herbie shell --seed 2019294
(FPCore (a b_2 c)
:name "quad2p (problem 3.2.1, positive)"
:precision binary64
(/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))