\begin{array}{l}
\mathbf{if}\;b \ge 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 -7.0325975464762235 \cdot 10^{+112}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(\frac{2 \cdot c}{\frac{b}{a}} - b\right) + \left(-b\right)}{2 \cdot a}\\
\end{array}\\
\mathbf{elif}\;b \le 1.7222948455593476 \cdot 10^{+64}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 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:\\
\;\;\;\;\frac{2 \cdot c}{\left(a \cdot \frac{c}{b} - b\right) \cdot 2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} + \left(-b\right)}{2 \cdot a}\\
\end{array}double f(double a, double b, double c) {
double r1175525 = b;
double r1175526 = 0.0;
bool r1175527 = r1175525 >= r1175526;
double r1175528 = 2.0;
double r1175529 = c;
double r1175530 = r1175528 * r1175529;
double r1175531 = -r1175525;
double r1175532 = r1175525 * r1175525;
double r1175533 = 4.0;
double r1175534 = a;
double r1175535 = r1175533 * r1175534;
double r1175536 = r1175535 * r1175529;
double r1175537 = r1175532 - r1175536;
double r1175538 = sqrt(r1175537);
double r1175539 = r1175531 - r1175538;
double r1175540 = r1175530 / r1175539;
double r1175541 = r1175531 + r1175538;
double r1175542 = r1175528 * r1175534;
double r1175543 = r1175541 / r1175542;
double r1175544 = r1175527 ? r1175540 : r1175543;
return r1175544;
}
double f(double a, double b, double c) {
double r1175545 = b;
double r1175546 = -7.0325975464762235e+112;
bool r1175547 = r1175545 <= r1175546;
double r1175548 = 0.0;
bool r1175549 = r1175545 >= r1175548;
double r1175550 = 2.0;
double r1175551 = c;
double r1175552 = r1175550 * r1175551;
double r1175553 = -r1175545;
double r1175554 = r1175545 * r1175545;
double r1175555 = 4.0;
double r1175556 = a;
double r1175557 = r1175555 * r1175556;
double r1175558 = r1175557 * r1175551;
double r1175559 = r1175554 - r1175558;
double r1175560 = sqrt(r1175559);
double r1175561 = r1175553 - r1175560;
double r1175562 = r1175552 / r1175561;
double r1175563 = r1175545 / r1175556;
double r1175564 = r1175552 / r1175563;
double r1175565 = r1175564 - r1175545;
double r1175566 = r1175565 + r1175553;
double r1175567 = r1175550 * r1175556;
double r1175568 = r1175566 / r1175567;
double r1175569 = r1175549 ? r1175562 : r1175568;
double r1175570 = 1.7222948455593476e+64;
bool r1175571 = r1175545 <= r1175570;
double r1175572 = sqrt(r1175560);
double r1175573 = r1175572 * r1175572;
double r1175574 = r1175553 + r1175573;
double r1175575 = r1175574 / r1175567;
double r1175576 = r1175549 ? r1175562 : r1175575;
double r1175577 = r1175551 / r1175545;
double r1175578 = r1175556 * r1175577;
double r1175579 = r1175578 - r1175545;
double r1175580 = r1175579 * r1175550;
double r1175581 = r1175552 / r1175580;
double r1175582 = r1175560 + r1175553;
double r1175583 = r1175582 / r1175567;
double r1175584 = r1175549 ? r1175581 : r1175583;
double r1175585 = r1175571 ? r1175576 : r1175584;
double r1175586 = r1175547 ? r1175569 : r1175585;
return r1175586;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -7.0325975464762235e+112Initial program 46.7
Taylor expanded around -inf 10.0
Simplified3.1
if -7.0325975464762235e+112 < b < 1.7222948455593476e+64Initial program 8.9
rmApplied add-sqr-sqrt9.0
if 1.7222948455593476e+64 < b Initial program 26.3
rmApplied add-sqr-sqrt26.4
Taylor expanded around inf 7.2
Simplified3.7
Final simplification6.7
herbie shell --seed 2019124
(FPCore (a b c)
:name "jeff quadratic root 2"
(if (>= b 0) (/ (* 2 c) (- (- b) (sqrt (- (* b b) (* (* 4 a) c))))) (/ (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a))))