\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -3.412776568687283300932456834981587297891 \cdot 10^{126}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\
\mathbf{elif}\;b_2 \le 4.603517726908400645968266248286182254745 \cdot 10^{-74}:\\
\;\;\;\;\frac{1}{\frac{a}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}\\
\mathbf{else}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\end{array}double f(double a, double b_2, double c) {
double r29245 = b_2;
double r29246 = -r29245;
double r29247 = r29245 * r29245;
double r29248 = a;
double r29249 = c;
double r29250 = r29248 * r29249;
double r29251 = r29247 - r29250;
double r29252 = sqrt(r29251);
double r29253 = r29246 + r29252;
double r29254 = r29253 / r29248;
return r29254;
}
double f(double a, double b_2, double c) {
double r29255 = b_2;
double r29256 = -3.4127765686872833e+126;
bool r29257 = r29255 <= r29256;
double r29258 = 0.5;
double r29259 = c;
double r29260 = r29259 / r29255;
double r29261 = r29258 * r29260;
double r29262 = 2.0;
double r29263 = a;
double r29264 = r29255 / r29263;
double r29265 = r29262 * r29264;
double r29266 = r29261 - r29265;
double r29267 = 4.603517726908401e-74;
bool r29268 = r29255 <= r29267;
double r29269 = 1.0;
double r29270 = r29255 * r29255;
double r29271 = r29263 * r29259;
double r29272 = r29270 - r29271;
double r29273 = sqrt(r29272);
double r29274 = r29273 - r29255;
double r29275 = r29263 / r29274;
double r29276 = r29269 / r29275;
double r29277 = -0.5;
double r29278 = r29277 * r29260;
double r29279 = r29268 ? r29276 : r29278;
double r29280 = r29257 ? r29266 : r29279;
return r29280;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -3.4127765686872833e+126Initial program 53.6
Taylor expanded around -inf 3.2
if -3.4127765686872833e+126 < b_2 < 4.603517726908401e-74Initial program 13.2
rmApplied clear-num13.3
Simplified13.3
if 4.603517726908401e-74 < b_2 Initial program 53.1
Taylor expanded around inf 9.1
Final simplification10.4
herbie shell --seed 2019208
(FPCore (a b_2 c)
:name "quad2p (problem 3.2.1, positive)"
:precision binary64
(/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))