\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -4.296711505503404627729963869764946127539 \cdot 10^{132}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\
\mathbf{elif}\;b_2 \le 9.800093806317491560562024775087327286248 \cdot 10^{-70}:\\
\;\;\;\;\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\end{array}double f(double a, double b_2, double c) {
double r18101 = b_2;
double r18102 = -r18101;
double r18103 = r18101 * r18101;
double r18104 = a;
double r18105 = c;
double r18106 = r18104 * r18105;
double r18107 = r18103 - r18106;
double r18108 = sqrt(r18107);
double r18109 = r18102 + r18108;
double r18110 = r18109 / r18104;
return r18110;
}
double f(double a, double b_2, double c) {
double r18111 = b_2;
double r18112 = -4.2967115055034046e+132;
bool r18113 = r18111 <= r18112;
double r18114 = 0.5;
double r18115 = c;
double r18116 = r18115 / r18111;
double r18117 = r18114 * r18116;
double r18118 = 2.0;
double r18119 = a;
double r18120 = r18111 / r18119;
double r18121 = r18118 * r18120;
double r18122 = r18117 - r18121;
double r18123 = 9.800093806317492e-70;
bool r18124 = r18111 <= r18123;
double r18125 = -r18111;
double r18126 = r18111 * r18111;
double r18127 = r18119 * r18115;
double r18128 = r18126 - r18127;
double r18129 = sqrt(r18128);
double r18130 = r18125 + r18129;
double r18131 = r18130 / r18119;
double r18132 = -0.5;
double r18133 = r18132 * r18116;
double r18134 = r18124 ? r18131 : r18133;
double r18135 = r18113 ? r18122 : r18134;
return r18135;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -4.2967115055034046e+132Initial program 55.4
Taylor expanded around -inf 2.6
if -4.2967115055034046e+132 < b_2 < 9.800093806317492e-70Initial program 12.8
if 9.800093806317492e-70 < b_2 Initial program 53.5
Taylor expanded around inf 8.6
Final simplification9.9
herbie shell --seed 2020001
(FPCore (a b_2 c)
:name "quad2p (problem 3.2.1, positive)"
:precision binary64
(/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))