\begin{array}{l}
\mathbf{if}\;b \ge 0.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 -4.3096325963658892 \cdot 10^{147}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0.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}{2 \cdot \left(\frac{a}{\sqrt[3]{b} \cdot \sqrt[3]{b}} \cdot \frac{c}{\sqrt[3]{b}}\right) - 2 \cdot b}\\
\end{array}\\
\mathbf{elif}\;b \le 8.1913675626814306 \cdot 10^{126}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0.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{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}} \cdot \sqrt{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}}\\
\end{array}\\
\mathbf{elif}\;b \ge 0.0:\\
\;\;\;\;\frac{2 \cdot \frac{a \cdot c}{b} - 2 \cdot b}{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}double f(double a, double b, double c) {
double r60590 = b;
double r60591 = 0.0;
bool r60592 = r60590 >= r60591;
double r60593 = -r60590;
double r60594 = r60590 * r60590;
double r60595 = 4.0;
double r60596 = a;
double r60597 = r60595 * r60596;
double r60598 = c;
double r60599 = r60597 * r60598;
double r60600 = r60594 - r60599;
double r60601 = sqrt(r60600);
double r60602 = r60593 - r60601;
double r60603 = 2.0;
double r60604 = r60603 * r60596;
double r60605 = r60602 / r60604;
double r60606 = r60603 * r60598;
double r60607 = r60593 + r60601;
double r60608 = r60606 / r60607;
double r60609 = r60592 ? r60605 : r60608;
return r60609;
}
double f(double a, double b, double c) {
double r60610 = b;
double r60611 = -4.309632596365889e+147;
bool r60612 = r60610 <= r60611;
double r60613 = 0.0;
bool r60614 = r60610 >= r60613;
double r60615 = -r60610;
double r60616 = r60610 * r60610;
double r60617 = 4.0;
double r60618 = a;
double r60619 = r60617 * r60618;
double r60620 = c;
double r60621 = r60619 * r60620;
double r60622 = r60616 - r60621;
double r60623 = sqrt(r60622);
double r60624 = r60615 - r60623;
double r60625 = 2.0;
double r60626 = r60625 * r60618;
double r60627 = r60624 / r60626;
double r60628 = r60625 * r60620;
double r60629 = cbrt(r60610);
double r60630 = r60629 * r60629;
double r60631 = r60618 / r60630;
double r60632 = r60620 / r60629;
double r60633 = r60631 * r60632;
double r60634 = r60625 * r60633;
double r60635 = 2.0;
double r60636 = r60635 * r60610;
double r60637 = r60634 - r60636;
double r60638 = r60628 / r60637;
double r60639 = r60614 ? r60627 : r60638;
double r60640 = 8.191367562681431e+126;
bool r60641 = r60610 <= r60640;
double r60642 = sqrt(r60623);
double r60643 = r60642 * r60642;
double r60644 = r60615 + r60643;
double r60645 = r60628 / r60644;
double r60646 = r60614 ? r60627 : r60645;
double r60647 = r60618 * r60620;
double r60648 = r60647 / r60610;
double r60649 = r60625 * r60648;
double r60650 = r60649 - r60636;
double r60651 = r60650 / r60626;
double r60652 = r60615 + r60623;
double r60653 = r60628 / r60652;
double r60654 = r60614 ? r60651 : r60653;
double r60655 = r60641 ? r60646 : r60654;
double r60656 = r60612 ? r60639 : r60655;
return r60656;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -4.309632596365889e+147Initial program 36.3
Taylor expanded around -inf 6.7
rmApplied add-cube-cbrt6.7
Applied times-frac1.3
if -4.309632596365889e+147 < b < 8.191367562681431e+126Initial program 8.9
rmApplied add-sqr-sqrt8.9
Applied sqrt-prod9.0
if 8.191367562681431e+126 < b Initial program 54.8
Taylor expanded around inf 11.2
Final simplification7.9
herbie shell --seed 2020034 +o rules:numerics
(FPCore (a b c)
:name "jeff quadratic root 1"
:precision binary64
(if (>= b 0.0) (/ (- (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (/ (* 2 c) (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))))))