\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -2.9644058459680186 \cdot 10^{71}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\
\mathbf{elif}\;b_2 \le -8.61562639771237576 \cdot 10^{-228}:\\
\;\;\;\;\left(\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}\right) \cdot \frac{1}{a}\\
\mathbf{elif}\;b_2 \le 1.2011474830795371 \cdot 10^{35}:\\
\;\;\;\;\frac{1 \cdot \frac{\frac{a}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}}{\frac{1}{c}}}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\end{array}double f(double a, double b_2, double c) {
double r20798 = b_2;
double r20799 = -r20798;
double r20800 = r20798 * r20798;
double r20801 = a;
double r20802 = c;
double r20803 = r20801 * r20802;
double r20804 = r20800 - r20803;
double r20805 = sqrt(r20804);
double r20806 = r20799 + r20805;
double r20807 = r20806 / r20801;
return r20807;
}
double f(double a, double b_2, double c) {
double r20808 = b_2;
double r20809 = -2.9644058459680186e+71;
bool r20810 = r20808 <= r20809;
double r20811 = 0.5;
double r20812 = c;
double r20813 = r20812 / r20808;
double r20814 = r20811 * r20813;
double r20815 = 2.0;
double r20816 = a;
double r20817 = r20808 / r20816;
double r20818 = r20815 * r20817;
double r20819 = r20814 - r20818;
double r20820 = -8.615626397712376e-228;
bool r20821 = r20808 <= r20820;
double r20822 = -r20808;
double r20823 = r20808 * r20808;
double r20824 = r20816 * r20812;
double r20825 = r20823 - r20824;
double r20826 = sqrt(r20825);
double r20827 = r20822 + r20826;
double r20828 = 1.0;
double r20829 = r20828 / r20816;
double r20830 = r20827 * r20829;
double r20831 = 1.2011474830795371e+35;
bool r20832 = r20808 <= r20831;
double r20833 = r20822 - r20826;
double r20834 = r20816 / r20833;
double r20835 = r20828 / r20812;
double r20836 = r20834 / r20835;
double r20837 = r20828 * r20836;
double r20838 = r20837 / r20816;
double r20839 = -0.5;
double r20840 = r20839 * r20813;
double r20841 = r20832 ? r20838 : r20840;
double r20842 = r20821 ? r20830 : r20841;
double r20843 = r20810 ? r20819 : r20842;
return r20843;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -2.9644058459680186e+71Initial program 42.3
Taylor expanded around -inf 4.6
if -2.9644058459680186e+71 < b_2 < -8.615626397712376e-228Initial program 9.2
rmApplied div-inv9.4
if -8.615626397712376e-228 < b_2 < 1.2011474830795371e+35Initial program 26.0
rmApplied flip-+26.2
Simplified16.7
rmApplied *-un-lft-identity16.7
Applied *-un-lft-identity16.7
Applied times-frac16.7
Simplified16.7
Simplified13.8
rmApplied div-inv13.8
Applied associate-/r*13.9
if 1.2011474830795371e+35 < b_2 Initial program 57.1
Taylor expanded around inf 4.0
Final simplification8.3
herbie shell --seed 2020089
(FPCore (a b_2 c)
:name "quad2p (problem 3.2.1, positive)"
:precision binary64
(/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))