\begin{array}{l}
\mathbf{if}\;b \ge 0.0:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\
\end{array}\begin{array}{l}
\mathbf{if}\;b \le -3.023317139260791399366790140273680657151 \cdot 10^{113}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0.0:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2 \cdot \frac{a \cdot c}{b} - 2 \cdot b}{2 \cdot a}\\
\end{array}\\
\mathbf{elif}\;b \le 1.02738286211209785784187544728837722875 \cdot 10^{63}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0.0:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\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}}}{2 \cdot a}\\
\end{array}\\
\mathbf{elif}\;b \ge 0.0:\\
\;\;\;\;\frac{2 \cdot c}{2 \cdot \frac{a \cdot c}{b} - 2 \cdot b}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\
\end{array}double f(double a, double b, double c) {
double r31517 = b;
double r31518 = 0.0;
bool r31519 = r31517 >= r31518;
double r31520 = 2.0;
double r31521 = c;
double r31522 = r31520 * r31521;
double r31523 = -r31517;
double r31524 = r31517 * r31517;
double r31525 = 4.0;
double r31526 = a;
double r31527 = r31525 * r31526;
double r31528 = r31527 * r31521;
double r31529 = r31524 - r31528;
double r31530 = sqrt(r31529);
double r31531 = r31523 - r31530;
double r31532 = r31522 / r31531;
double r31533 = r31523 + r31530;
double r31534 = r31520 * r31526;
double r31535 = r31533 / r31534;
double r31536 = r31519 ? r31532 : r31535;
return r31536;
}
double f(double a, double b, double c) {
double r31537 = b;
double r31538 = -3.0233171392607914e+113;
bool r31539 = r31537 <= r31538;
double r31540 = 0.0;
bool r31541 = r31537 >= r31540;
double r31542 = 2.0;
double r31543 = c;
double r31544 = r31542 * r31543;
double r31545 = -r31537;
double r31546 = r31537 * r31537;
double r31547 = 4.0;
double r31548 = a;
double r31549 = r31547 * r31548;
double r31550 = r31549 * r31543;
double r31551 = r31546 - r31550;
double r31552 = sqrt(r31551);
double r31553 = r31545 - r31552;
double r31554 = r31544 / r31553;
double r31555 = r31548 * r31543;
double r31556 = r31555 / r31537;
double r31557 = r31542 * r31556;
double r31558 = 2.0;
double r31559 = r31558 * r31537;
double r31560 = r31557 - r31559;
double r31561 = r31542 * r31548;
double r31562 = r31560 / r31561;
double r31563 = r31541 ? r31554 : r31562;
double r31564 = 1.0273828621120979e+63;
bool r31565 = r31537 <= r31564;
double r31566 = sqrt(r31552);
double r31567 = r31566 * r31566;
double r31568 = r31545 + r31567;
double r31569 = r31568 / r31561;
double r31570 = r31541 ? r31554 : r31569;
double r31571 = r31544 / r31560;
double r31572 = r31545 + r31552;
double r31573 = r31572 / r31561;
double r31574 = r31541 ? r31571 : r31573;
double r31575 = r31565 ? r31570 : r31574;
double r31576 = r31539 ? r31563 : r31575;
return r31576;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -3.0233171392607914e+113Initial program 49.6
Taylor expanded around -inf 10.0
if -3.0233171392607914e+113 < b < 1.0273828621120979e+63Initial program 9.2
rmApplied add-sqr-sqrt9.2
Applied sqrt-prod9.3
if 1.0273828621120979e+63 < b Initial program 27.0
rmApplied add-sqr-sqrt27.0
Applied sqrt-prod27.0
Taylor expanded around inf 7.2
Final simplification8.8
herbie shell --seed 2020001
(FPCore (a b c)
:name "jeff quadratic root 2"
:precision binary64
(if (>= b 0.0) (/ (* 2 c) (- (- b) (sqrt (- (* b b) (* (* 4 a) c))))) (/ (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a))))