\begin{array}{l}
\mathbf{if}\;b \ge 0:\\
\;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\
\mathbf{else}:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\
\end{array}\begin{array}{l}
\mathbf{if}\;b \le -1.3441037991607355 \cdot 10^{+154}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0:\\
\;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\
\mathbf{else}:\\
\;\;\;\;\frac{c \cdot 2}{2 \cdot \left(\frac{a \cdot c}{b} - b\right)}\\
\end{array}\\
\mathbf{elif}\;b \le 7.947663392061663 \cdot 10^{+104}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0:\\
\;\;\;\;\frac{\left(-b\right) - \sqrt{\sqrt[3]{b \cdot b - \left(4 \cdot a\right) \cdot c}} \cdot \sqrt{\sqrt[3]{b \cdot b - \left(4 \cdot a\right) \cdot c} \cdot \sqrt[3]{b \cdot b - \left(4 \cdot a\right) \cdot c}}}{2 \cdot a}\\
\mathbf{else}:\\
\;\;\;\;\frac{c \cdot 2}{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} + \left(-b\right)}\\
\end{array}\\
\mathbf{elif}\;b \ge 0:\\
\;\;\;\;\frac{\left(-b\right) - \left(b - 2 \cdot \frac{a \cdot c}{b}\right)}{2 \cdot a}\\
\mathbf{else}:\\
\;\;\;\;\frac{c \cdot 2}{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} + \left(-b\right)}\\
\end{array}double f(double a, double b, double c) {
double r442579 = b;
double r442580 = 0.0;
bool r442581 = r442579 >= r442580;
double r442582 = -r442579;
double r442583 = r442579 * r442579;
double r442584 = 4.0;
double r442585 = a;
double r442586 = r442584 * r442585;
double r442587 = c;
double r442588 = r442586 * r442587;
double r442589 = r442583 - r442588;
double r442590 = sqrt(r442589);
double r442591 = r442582 - r442590;
double r442592 = 2.0;
double r442593 = r442592 * r442585;
double r442594 = r442591 / r442593;
double r442595 = r442592 * r442587;
double r442596 = r442582 + r442590;
double r442597 = r442595 / r442596;
double r442598 = r442581 ? r442594 : r442597;
return r442598;
}
double f(double a, double b, double c) {
double r442599 = b;
double r442600 = -1.3441037991607355e+154;
bool r442601 = r442599 <= r442600;
double r442602 = 0.0;
bool r442603 = r442599 >= r442602;
double r442604 = -r442599;
double r442605 = r442599 * r442599;
double r442606 = 4.0;
double r442607 = a;
double r442608 = r442606 * r442607;
double r442609 = c;
double r442610 = r442608 * r442609;
double r442611 = r442605 - r442610;
double r442612 = sqrt(r442611);
double r442613 = r442604 - r442612;
double r442614 = 2.0;
double r442615 = r442614 * r442607;
double r442616 = r442613 / r442615;
double r442617 = r442609 * r442614;
double r442618 = r442607 * r442609;
double r442619 = r442618 / r442599;
double r442620 = r442619 - r442599;
double r442621 = r442614 * r442620;
double r442622 = r442617 / r442621;
double r442623 = r442603 ? r442616 : r442622;
double r442624 = 7.947663392061663e+104;
bool r442625 = r442599 <= r442624;
double r442626 = cbrt(r442611);
double r442627 = sqrt(r442626);
double r442628 = r442626 * r442626;
double r442629 = sqrt(r442628);
double r442630 = r442627 * r442629;
double r442631 = r442604 - r442630;
double r442632 = r442631 / r442615;
double r442633 = r442612 + r442604;
double r442634 = r442617 / r442633;
double r442635 = r442603 ? r442632 : r442634;
double r442636 = r442614 * r442619;
double r442637 = r442599 - r442636;
double r442638 = r442604 - r442637;
double r442639 = r442638 / r442615;
double r442640 = r442603 ? r442639 : r442634;
double r442641 = r442625 ? r442635 : r442640;
double r442642 = r442601 ? r442623 : r442641;
return r442642;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -1.3441037991607355e+154Initial program 38.9
rmApplied add-sqr-sqrt38.9
Applied sqrt-prod38.9
Taylor expanded around -inf 5.2
Simplified5.2
if -1.3441037991607355e+154 < b < 7.947663392061663e+104Initial program 8.5
rmApplied add-cube-cbrt8.7
Applied sqrt-prod8.7
if 7.947663392061663e+104 < b Initial program 44.3
Taylor expanded around inf 8.9
Final simplification8.1
herbie shell --seed 2019153
(FPCore (a b c)
:name "jeff quadratic root 1"
(if (>= b 0) (/ (- (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (/ (* 2 c) (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))))))