\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -3.71711085460076329 \cdot 10^{118}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\
\mathbf{elif}\;b_2 \le 5.2125724160985202 \cdot 10^{-204}:\\
\;\;\;\;\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\
\mathbf{elif}\;b_2 \le 3461964491124549:\\
\;\;\;\;\frac{\frac{1}{1}}{\left(\left(\frac{\sqrt[3]{a} \cdot \sqrt[3]{a}}{a} \cdot \frac{\sqrt[3]{\sqrt[3]{a}} \cdot \sqrt[3]{\sqrt[3]{a}}}{\sqrt[3]{c} \cdot \sqrt[3]{c}}\right) \cdot \frac{\sqrt[3]{\sqrt[3]{a}}}{\sqrt[3]{c}}\right) \cdot \left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\end{array}double f(double a, double b_2, double c) {
double r17745 = b_2;
double r17746 = -r17745;
double r17747 = r17745 * r17745;
double r17748 = a;
double r17749 = c;
double r17750 = r17748 * r17749;
double r17751 = r17747 - r17750;
double r17752 = sqrt(r17751);
double r17753 = r17746 + r17752;
double r17754 = r17753 / r17748;
return r17754;
}
double f(double a, double b_2, double c) {
double r17755 = b_2;
double r17756 = -3.7171108546007633e+118;
bool r17757 = r17755 <= r17756;
double r17758 = 0.5;
double r17759 = c;
double r17760 = r17759 / r17755;
double r17761 = r17758 * r17760;
double r17762 = 2.0;
double r17763 = a;
double r17764 = r17755 / r17763;
double r17765 = r17762 * r17764;
double r17766 = r17761 - r17765;
double r17767 = 5.21257241609852e-204;
bool r17768 = r17755 <= r17767;
double r17769 = -r17755;
double r17770 = r17755 * r17755;
double r17771 = r17763 * r17759;
double r17772 = r17770 - r17771;
double r17773 = sqrt(r17772);
double r17774 = r17769 + r17773;
double r17775 = r17774 / r17763;
double r17776 = 3461964491124549.0;
bool r17777 = r17755 <= r17776;
double r17778 = 1.0;
double r17779 = r17778 / r17778;
double r17780 = cbrt(r17763);
double r17781 = r17780 * r17780;
double r17782 = r17781 / r17763;
double r17783 = cbrt(r17780);
double r17784 = r17783 * r17783;
double r17785 = cbrt(r17759);
double r17786 = r17785 * r17785;
double r17787 = r17784 / r17786;
double r17788 = r17782 * r17787;
double r17789 = r17783 / r17785;
double r17790 = r17788 * r17789;
double r17791 = r17769 - r17773;
double r17792 = r17790 * r17791;
double r17793 = r17779 / r17792;
double r17794 = -0.5;
double r17795 = r17794 * r17760;
double r17796 = r17777 ? r17793 : r17795;
double r17797 = r17768 ? r17775 : r17796;
double r17798 = r17757 ? r17766 : r17797;
return r17798;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -3.7171108546007633e+118Initial program 52.0
Taylor expanded around -inf 2.9
if -3.7171108546007633e+118 < b_2 < 5.21257241609852e-204Initial program 9.6
if 5.21257241609852e-204 < b_2 < 3461964491124549.0Initial program 31.8
rmApplied flip-+31.8
Simplified16.9
rmApplied *-un-lft-identity16.9
Applied *-un-lft-identity16.9
Applied times-frac16.9
Applied associate-/l*17.0
Simplified16.9
rmApplied add-cube-cbrt17.6
Applied times-frac12.8
rmApplied add-cube-cbrt13.0
Applied add-cube-cbrt13.2
Applied times-frac13.2
Applied associate-*r*9.7
if 3461964491124549.0 < b_2 Initial program 55.9
Taylor expanded around inf 5.5
Final simplification7.4
herbie shell --seed 2020027 +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))