\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -2200.014963884743337985128164291381835938:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\
\mathbf{elif}\;b_2 \le -2.663208156852496276323099967005845489977 \cdot 10^{-95}:\\
\;\;\;\;\frac{\frac{1}{\frac{\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}}{c}}}{a}\\
\mathbf{elif}\;b_2 \le -1.642868784686771959253301844332455949634 \cdot 10^{-124}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\
\mathbf{elif}\;b_2 \le 1.163257014750463128016273787104570685132 \cdot 10^{78}:\\
\;\;\;\;\frac{\frac{1}{\frac{\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}}{c}}}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\end{array}double f(double a, double b_2, double c) {
double r39802 = b_2;
double r39803 = -r39802;
double r39804 = r39802 * r39802;
double r39805 = a;
double r39806 = c;
double r39807 = r39805 * r39806;
double r39808 = r39804 - r39807;
double r39809 = sqrt(r39808);
double r39810 = r39803 + r39809;
double r39811 = r39810 / r39805;
return r39811;
}
double f(double a, double b_2, double c) {
double r39812 = b_2;
double r39813 = -2200.0149638847433;
bool r39814 = r39812 <= r39813;
double r39815 = 0.5;
double r39816 = c;
double r39817 = r39816 / r39812;
double r39818 = r39815 * r39817;
double r39819 = 2.0;
double r39820 = a;
double r39821 = r39812 / r39820;
double r39822 = r39819 * r39821;
double r39823 = r39818 - r39822;
double r39824 = -2.6632081568524963e-95;
bool r39825 = r39812 <= r39824;
double r39826 = 1.0;
double r39827 = -r39812;
double r39828 = r39812 * r39812;
double r39829 = r39820 * r39816;
double r39830 = r39828 - r39829;
double r39831 = sqrt(r39830);
double r39832 = r39827 - r39831;
double r39833 = r39832 / r39820;
double r39834 = r39833 / r39816;
double r39835 = r39826 / r39834;
double r39836 = r39835 / r39820;
double r39837 = -1.642868784686772e-124;
bool r39838 = r39812 <= r39837;
double r39839 = 1.1632570147504631e+78;
bool r39840 = r39812 <= r39839;
double r39841 = -0.5;
double r39842 = r39841 * r39817;
double r39843 = r39840 ? r39836 : r39842;
double r39844 = r39838 ? r39823 : r39843;
double r39845 = r39825 ? r39836 : r39844;
double r39846 = r39814 ? r39823 : r39845;
return r39846;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -2200.0149638847433 or -2.6632081568524963e-95 < b_2 < -1.642868784686772e-124Initial program 29.9
Taylor expanded around -inf 10.7
if -2200.0149638847433 < b_2 < -2.6632081568524963e-95 or -1.642868784686772e-124 < b_2 < 1.1632570147504631e+78Initial program 23.1
rmApplied flip-+29.2
Simplified20.5
rmApplied clear-num20.6
Simplified19.6
if 1.1632570147504631e+78 < b_2 Initial program 58.3
Taylor expanded around inf 2.8
Final simplification12.8
herbie shell --seed 2019346 +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))