\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 -9.348931433494438 \cdot 10^{+39}:\\
\;\;\;\;\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 1.3451554005288185 \cdot 10^{+63}:\\
\;\;\;\;\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{2 \cdot \left(\frac{a \cdot c}{b} - 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 r1029494 = b;
double r1029495 = 0.0;
bool r1029496 = r1029494 >= r1029495;
double r1029497 = -r1029494;
double r1029498 = r1029494 * r1029494;
double r1029499 = 4.0;
double r1029500 = a;
double r1029501 = r1029499 * r1029500;
double r1029502 = c;
double r1029503 = r1029501 * r1029502;
double r1029504 = r1029498 - r1029503;
double r1029505 = sqrt(r1029504);
double r1029506 = r1029497 - r1029505;
double r1029507 = 2.0;
double r1029508 = r1029507 * r1029500;
double r1029509 = r1029506 / r1029508;
double r1029510 = r1029507 * r1029502;
double r1029511 = r1029497 + r1029505;
double r1029512 = r1029510 / r1029511;
double r1029513 = r1029496 ? r1029509 : r1029512;
return r1029513;
}
double f(double a, double b, double c) {
double r1029514 = b;
double r1029515 = -9.348931433494438e+39;
bool r1029516 = r1029514 <= r1029515;
double r1029517 = 0.0;
bool r1029518 = r1029514 >= r1029517;
double r1029519 = -r1029514;
double r1029520 = r1029514 * r1029514;
double r1029521 = 4.0;
double r1029522 = a;
double r1029523 = r1029521 * r1029522;
double r1029524 = c;
double r1029525 = r1029523 * r1029524;
double r1029526 = r1029520 - r1029525;
double r1029527 = sqrt(r1029526);
double r1029528 = r1029519 - r1029527;
double r1029529 = 2.0;
double r1029530 = r1029529 * r1029522;
double r1029531 = r1029528 / r1029530;
double r1029532 = r1029524 * r1029529;
double r1029533 = r1029522 * r1029524;
double r1029534 = r1029533 / r1029514;
double r1029535 = r1029534 - r1029514;
double r1029536 = r1029529 * r1029535;
double r1029537 = r1029532 / r1029536;
double r1029538 = r1029518 ? r1029531 : r1029537;
double r1029539 = 1.3451554005288185e+63;
bool r1029540 = r1029514 <= r1029539;
double r1029541 = cbrt(r1029526);
double r1029542 = sqrt(r1029541);
double r1029543 = r1029541 * r1029541;
double r1029544 = sqrt(r1029543);
double r1029545 = r1029542 * r1029544;
double r1029546 = r1029519 - r1029545;
double r1029547 = r1029546 / r1029530;
double r1029548 = r1029527 + r1029519;
double r1029549 = r1029532 / r1029548;
double r1029550 = r1029518 ? r1029547 : r1029549;
double r1029551 = r1029536 / r1029530;
double r1029552 = r1029518 ? r1029551 : r1029549;
double r1029553 = r1029540 ? r1029550 : r1029552;
double r1029554 = r1029516 ? r1029538 : r1029553;
return r1029554;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -9.348931433494438e+39Initial program 24.0
Taylor expanded around -inf 7.2
Simplified7.2
if -9.348931433494438e+39 < b < 1.3451554005288185e+63Initial program 9.5
rmApplied add-cube-cbrt9.8
Applied sqrt-prod9.8
if 1.3451554005288185e+63 < b Initial program 38.1
Taylor expanded around inf 9.7
Simplified9.7
Final simplification9.0
herbie shell --seed 2019158
(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)))))))