\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -5.4077460761521334 \cdot 10^{+100}:\\
\;\;\;\;\frac{(\frac{1}{2} \cdot \left(\frac{a}{\frac{b_2}{c}}\right) + \left(b_2 \cdot -2\right))_*}{a}\\
\mathbf{elif}\;b_2 \le -6.235100481662323 \cdot 10^{-305}:\\
\;\;\;\;\frac{1}{\frac{a}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}\\
\mathbf{elif}\;b_2 \le 3.8630133818209355 \cdot 10^{-07}:\\
\;\;\;\;\frac{-\frac{a \cdot c}{a}}{\sqrt{b_2 \cdot b_2 - a \cdot c} + b_2}\\
\mathbf{else}:\\
\;\;\;\;\frac{c}{b_2} \cdot \frac{-1}{2}\\
\end{array}double f(double a, double b_2, double c) {
double r1910774 = b_2;
double r1910775 = -r1910774;
double r1910776 = r1910774 * r1910774;
double r1910777 = a;
double r1910778 = c;
double r1910779 = r1910777 * r1910778;
double r1910780 = r1910776 - r1910779;
double r1910781 = sqrt(r1910780);
double r1910782 = r1910775 + r1910781;
double r1910783 = r1910782 / r1910777;
return r1910783;
}
double f(double a, double b_2, double c) {
double r1910784 = b_2;
double r1910785 = -5.4077460761521334e+100;
bool r1910786 = r1910784 <= r1910785;
double r1910787 = 0.5;
double r1910788 = a;
double r1910789 = c;
double r1910790 = r1910784 / r1910789;
double r1910791 = r1910788 / r1910790;
double r1910792 = -2.0;
double r1910793 = r1910784 * r1910792;
double r1910794 = fma(r1910787, r1910791, r1910793);
double r1910795 = r1910794 / r1910788;
double r1910796 = -6.235100481662323e-305;
bool r1910797 = r1910784 <= r1910796;
double r1910798 = 1.0;
double r1910799 = r1910784 * r1910784;
double r1910800 = r1910788 * r1910789;
double r1910801 = r1910799 - r1910800;
double r1910802 = sqrt(r1910801);
double r1910803 = r1910802 - r1910784;
double r1910804 = r1910788 / r1910803;
double r1910805 = r1910798 / r1910804;
double r1910806 = 3.8630133818209355e-07;
bool r1910807 = r1910784 <= r1910806;
double r1910808 = r1910800 / r1910788;
double r1910809 = -r1910808;
double r1910810 = r1910802 + r1910784;
double r1910811 = r1910809 / r1910810;
double r1910812 = r1910789 / r1910784;
double r1910813 = -0.5;
double r1910814 = r1910812 * r1910813;
double r1910815 = r1910807 ? r1910811 : r1910814;
double r1910816 = r1910797 ? r1910805 : r1910815;
double r1910817 = r1910786 ? r1910795 : r1910816;
return r1910817;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
if b_2 < -5.4077460761521334e+100Initial program 44.3
Simplified44.3
Taylor expanded around -inf 11.1
Simplified3.8
if -5.4077460761521334e+100 < b_2 < -6.235100481662323e-305Initial program 8.8
Simplified8.8
rmApplied div-inv8.9
rmApplied un-div-inv8.8
rmApplied *-un-lft-identity8.8
Applied *-un-lft-identity8.8
Applied distribute-lft-out--8.8
Applied associate-/l*8.9
if -6.235100481662323e-305 < b_2 < 3.8630133818209355e-07Initial program 25.6
Simplified25.6
rmApplied div-inv25.7
rmApplied flip--25.8
Applied associate-*l/25.8
Simplified17.0
if 3.8630133818209355e-07 < b_2 Initial program 54.0
Simplified54.0
Taylor expanded around inf 6.0
Final simplification8.8
herbie shell --seed 2019104 +o rules:numerics
(FPCore (a b_2 c)
:name "quad2p (problem 3.2.1, positive)"
(/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))