\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -2.9644058459680186 \cdot 10^{71}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\
\mathbf{elif}\;b_2 \le -8.61562639771237576 \cdot 10^{-228}:\\
\;\;\;\;\left(\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}\right) \cdot \frac{1}{a}\\
\mathbf{elif}\;b_2 \le 1.2011474830795371 \cdot 10^{35}:\\
\;\;\;\;\frac{1 \cdot \frac{\frac{a}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}}{\frac{1}{c}}}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\end{array}double f(double a, double b_2, double c) {
double r21472 = b_2;
double r21473 = -r21472;
double r21474 = r21472 * r21472;
double r21475 = a;
double r21476 = c;
double r21477 = r21475 * r21476;
double r21478 = r21474 - r21477;
double r21479 = sqrt(r21478);
double r21480 = r21473 + r21479;
double r21481 = r21480 / r21475;
return r21481;
}
double f(double a, double b_2, double c) {
double r21482 = b_2;
double r21483 = -2.9644058459680186e+71;
bool r21484 = r21482 <= r21483;
double r21485 = 0.5;
double r21486 = c;
double r21487 = r21486 / r21482;
double r21488 = r21485 * r21487;
double r21489 = 2.0;
double r21490 = a;
double r21491 = r21482 / r21490;
double r21492 = r21489 * r21491;
double r21493 = r21488 - r21492;
double r21494 = -8.615626397712376e-228;
bool r21495 = r21482 <= r21494;
double r21496 = -r21482;
double r21497 = r21482 * r21482;
double r21498 = r21490 * r21486;
double r21499 = r21497 - r21498;
double r21500 = sqrt(r21499);
double r21501 = r21496 + r21500;
double r21502 = 1.0;
double r21503 = r21502 / r21490;
double r21504 = r21501 * r21503;
double r21505 = 1.2011474830795371e+35;
bool r21506 = r21482 <= r21505;
double r21507 = r21496 - r21500;
double r21508 = r21490 / r21507;
double r21509 = r21502 / r21486;
double r21510 = r21508 / r21509;
double r21511 = r21502 * r21510;
double r21512 = r21511 / r21490;
double r21513 = -0.5;
double r21514 = r21513 * r21487;
double r21515 = r21506 ? r21512 : r21514;
double r21516 = r21495 ? r21504 : r21515;
double r21517 = r21484 ? r21493 : r21516;
return r21517;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -2.9644058459680186e+71Initial program 42.3
Taylor expanded around -inf 4.6
if -2.9644058459680186e+71 < b_2 < -8.615626397712376e-228Initial program 9.2
rmApplied div-inv9.4
if -8.615626397712376e-228 < b_2 < 1.2011474830795371e+35Initial program 26.0
rmApplied flip-+26.2
Simplified16.7
rmApplied *-un-lft-identity16.7
Applied *-un-lft-identity16.7
Applied times-frac16.7
Simplified16.7
Simplified13.8
rmApplied div-inv13.8
Applied associate-/r*13.9
if 1.2011474830795371e+35 < b_2 Initial program 57.1
Taylor expanded around inf 4.0
Final simplification8.3
herbie shell --seed 2020089 +o rules:numerics
(FPCore (a b_2 c)
:name "quad2p (problem 3.2.1, positive)"
:precision binary64
(/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))