\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -1.763315479739403460017265344144602342789 \cdot 10^{89}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - \frac{b_2}{a} \cdot 2\\
\mathbf{elif}\;b_2 \le 9.136492990928292133394320076175633285536 \cdot 10^{-23}:\\
\;\;\;\;\frac{{\left(b_2 \cdot b_2 - c \cdot a\right)}^{\frac{1}{2}} - 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 r845569 = b_2;
double r845570 = -r845569;
double r845571 = r845569 * r845569;
double r845572 = a;
double r845573 = c;
double r845574 = r845572 * r845573;
double r845575 = r845571 - r845574;
double r845576 = sqrt(r845575);
double r845577 = r845570 + r845576;
double r845578 = r845577 / r845572;
return r845578;
}
double f(double a, double b_2, double c) {
double r845579 = b_2;
double r845580 = -1.7633154797394035e+89;
bool r845581 = r845579 <= r845580;
double r845582 = 0.5;
double r845583 = c;
double r845584 = r845583 / r845579;
double r845585 = r845582 * r845584;
double r845586 = a;
double r845587 = r845579 / r845586;
double r845588 = 2.0;
double r845589 = r845587 * r845588;
double r845590 = r845585 - r845589;
double r845591 = 9.136492990928292e-23;
bool r845592 = r845579 <= r845591;
double r845593 = r845579 * r845579;
double r845594 = r845583 * r845586;
double r845595 = r845593 - r845594;
double r845596 = pow(r845595, r845582);
double r845597 = r845596 - r845579;
double r845598 = r845597 / r845586;
double r845599 = -0.5;
double r845600 = r845584 * r845599;
double r845601 = r845592 ? r845598 : r845600;
double r845602 = r845581 ? r845590 : r845601;
return r845602;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -1.7633154797394035e+89Initial program 45.7
Simplified45.7
Taylor expanded around -inf 3.9
if -1.7633154797394035e+89 < b_2 < 9.136492990928292e-23Initial program 15.0
Simplified15.0
rmApplied add-cube-cbrt15.4
rmApplied pow1/317.5
Applied pow1/318.2
Applied pow1/318.6
Applied pow-prod-up18.6
Applied pow-prod-up15.0
Applied sqrt-pow115.0
Simplified15.0
if 9.136492990928292e-23 < b_2 Initial program 55.4
Simplified55.4
Taylor expanded around inf 6.7
Final simplification10.2
herbie shell --seed 2019172
(FPCore (a b_2 c)
:name "quad2p (problem 3.2.1, positive)"
(/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))