\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -4.1982115506822474 \cdot 10^{+126}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - \frac{b_2}{a} \cdot 2\\
\mathbf{elif}\;b_2 \le 2.6443485350724205 \cdot 10^{-92}:\\
\;\;\;\;\frac{\sqrt{b_2 \cdot b_2 - c \cdot a} - b_2}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{c}{b_2} \cdot \frac{-1}{2}\\
\end{array}double f(double a, double b_2, double c) {
double r490289 = b_2;
double r490290 = -r490289;
double r490291 = r490289 * r490289;
double r490292 = a;
double r490293 = c;
double r490294 = r490292 * r490293;
double r490295 = r490291 - r490294;
double r490296 = sqrt(r490295);
double r490297 = r490290 + r490296;
double r490298 = r490297 / r490292;
return r490298;
}
double f(double a, double b_2, double c) {
double r490299 = b_2;
double r490300 = -4.1982115506822474e+126;
bool r490301 = r490299 <= r490300;
double r490302 = 0.5;
double r490303 = c;
double r490304 = r490303 / r490299;
double r490305 = r490302 * r490304;
double r490306 = a;
double r490307 = r490299 / r490306;
double r490308 = 2.0;
double r490309 = r490307 * r490308;
double r490310 = r490305 - r490309;
double r490311 = 2.6443485350724205e-92;
bool r490312 = r490299 <= r490311;
double r490313 = r490299 * r490299;
double r490314 = r490303 * r490306;
double r490315 = r490313 - r490314;
double r490316 = sqrt(r490315);
double r490317 = r490316 - r490299;
double r490318 = r490317 / r490306;
double r490319 = -0.5;
double r490320 = r490304 * r490319;
double r490321 = r490312 ? r490318 : r490320;
double r490322 = r490301 ? r490310 : r490321;
return r490322;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -4.1982115506822474e+126Initial program 51.7
Simplified51.7
Taylor expanded around -inf 3.4
if -4.1982115506822474e+126 < b_2 < 2.6443485350724205e-92Initial program 12.2
Simplified12.2
if 2.6443485350724205e-92 < b_2 Initial program 51.9
Simplified51.9
rmApplied div-inv51.9
Taylor expanded around inf 9.6
Final simplification10.0
herbie shell --seed 2019135
(FPCore (a b_2 c)
:name "quad2p (problem 3.2.1, positive)"
(/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))