\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 -9.84075453500638311 \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}{\left(-b\right) + \left(2 \cdot \frac{a}{\frac{b}{c}} - b\right)}\\
\end{array}\\
\mathbf{elif}\;b \le 7.4471423651860946 \cdot 10^{108}:\\
\;\;\;\;\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 r46501 = b;
double r46502 = 0.0;
bool r46503 = r46501 >= r46502;
double r46504 = -r46501;
double r46505 = r46501 * r46501;
double r46506 = 4.0;
double r46507 = a;
double r46508 = r46506 * r46507;
double r46509 = c;
double r46510 = r46508 * r46509;
double r46511 = r46505 - r46510;
double r46512 = sqrt(r46511);
double r46513 = r46504 - r46512;
double r46514 = 2.0;
double r46515 = r46514 * r46507;
double r46516 = r46513 / r46515;
double r46517 = r46514 * r46509;
double r46518 = r46504 + r46512;
double r46519 = r46517 / r46518;
double r46520 = r46503 ? r46516 : r46519;
return r46520;
}
double f(double a, double b, double c) {
double r46521 = b;
double r46522 = -9.840754535006383e+147;
bool r46523 = r46521 <= r46522;
double r46524 = 0.0;
bool r46525 = r46521 >= r46524;
double r46526 = -r46521;
double r46527 = r46521 * r46521;
double r46528 = 4.0;
double r46529 = a;
double r46530 = r46528 * r46529;
double r46531 = c;
double r46532 = r46530 * r46531;
double r46533 = r46527 - r46532;
double r46534 = sqrt(r46533);
double r46535 = r46526 - r46534;
double r46536 = 2.0;
double r46537 = r46536 * r46529;
double r46538 = r46535 / r46537;
double r46539 = r46536 * r46531;
double r46540 = r46521 / r46531;
double r46541 = r46529 / r46540;
double r46542 = r46536 * r46541;
double r46543 = r46542 - r46521;
double r46544 = r46526 + r46543;
double r46545 = r46539 / r46544;
double r46546 = r46525 ? r46538 : r46545;
double r46547 = 7.447142365186095e+108;
bool r46548 = r46521 <= r46547;
double r46549 = sqrt(r46534);
double r46550 = r46549 * r46549;
double r46551 = r46526 + r46550;
double r46552 = r46539 / r46551;
double r46553 = r46525 ? r46538 : r46552;
double r46554 = r46529 * r46531;
double r46555 = r46554 / r46521;
double r46556 = r46536 * r46555;
double r46557 = 2.0;
double r46558 = r46557 * r46521;
double r46559 = r46556 - r46558;
double r46560 = r46559 / r46537;
double r46561 = r46526 + r46534;
double r46562 = r46539 / r46561;
double r46563 = r46525 ? r46560 : r46562;
double r46564 = r46548 ? r46553 : r46563;
double r46565 = r46523 ? r46546 : r46564;
return r46565;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -9.840754535006383e+147Initial program 37.3
Taylor expanded around -inf 6.5
rmApplied associate-/l*1.4
if -9.840754535006383e+147 < b < 7.447142365186095e+108Initial program 8.7
rmApplied add-sqr-sqrt8.7
Applied sqrt-prod8.8
if 7.447142365186095e+108 < b Initial program 50.2
Taylor expanded around inf 10.9
Final simplification7.8
herbie shell --seed 2020062
(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)))))))