\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -227369802444031.66:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - \frac{b_2}{a} \cdot 2\\
\mathbf{elif}\;b_2 \le 2.0617732603635578 \cdot 10^{-61}:\\
\;\;\;\;\frac{\frac{1}{a}}{\frac{1}{\sqrt{b_2 \cdot b_2 - c \cdot a} - b_2}}\\
\mathbf{else}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\end{array}double f(double a, double b_2, double c) {
double r630412 = b_2;
double r630413 = -r630412;
double r630414 = r630412 * r630412;
double r630415 = a;
double r630416 = c;
double r630417 = r630415 * r630416;
double r630418 = r630414 - r630417;
double r630419 = sqrt(r630418);
double r630420 = r630413 + r630419;
double r630421 = r630420 / r630415;
return r630421;
}
double f(double a, double b_2, double c) {
double r630422 = b_2;
double r630423 = -227369802444031.66;
bool r630424 = r630422 <= r630423;
double r630425 = 0.5;
double r630426 = c;
double r630427 = r630426 / r630422;
double r630428 = r630425 * r630427;
double r630429 = a;
double r630430 = r630422 / r630429;
double r630431 = 2.0;
double r630432 = r630430 * r630431;
double r630433 = r630428 - r630432;
double r630434 = 2.0617732603635578e-61;
bool r630435 = r630422 <= r630434;
double r630436 = 1.0;
double r630437 = r630436 / r630429;
double r630438 = r630422 * r630422;
double r630439 = r630426 * r630429;
double r630440 = r630438 - r630439;
double r630441 = sqrt(r630440);
double r630442 = r630441 - r630422;
double r630443 = r630436 / r630442;
double r630444 = r630437 / r630443;
double r630445 = -0.5;
double r630446 = r630445 * r630427;
double r630447 = r630435 ? r630444 : r630446;
double r630448 = r630424 ? r630433 : r630447;
return r630448;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -227369802444031.66Initial program 32.9
Simplified32.9
Taylor expanded around -inf 6.7
if -227369802444031.66 < b_2 < 2.0617732603635578e-61Initial program 15.0
Simplified15.0
rmApplied clear-num15.0
rmApplied div-inv15.1
Applied associate-/r*15.1
if 2.0617732603635578e-61 < b_2 Initial program 52.8
Simplified52.8
Taylor expanded around inf 8.2
Final simplification10.6
herbie shell --seed 2019146
(FPCore (a b_2 c)
:name "quad2p (problem 3.2.1, positive)"
(/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))