\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 -3.688468976067862917923558349816908192872 \cdot 10^{161}:\\
\;\;\;\;\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(2 \cdot \frac{a \cdot c}{b} - b\right) - b}\\
\end{array}\\
\mathbf{elif}\;b \le 1.822077811116170988501030000586664884528 \cdot 10^{78}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0.0:\\
\;\;\;\;\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}\\
\mathbf{else}:\\
\;\;\;\;\frac{2 \cdot c}{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} - b}\\
\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}{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} - b}\\
\end{array}double f(double a, double b, double c) {
double r36490 = b;
double r36491 = 0.0;
bool r36492 = r36490 >= r36491;
double r36493 = -r36490;
double r36494 = r36490 * r36490;
double r36495 = 4.0;
double r36496 = a;
double r36497 = r36495 * r36496;
double r36498 = c;
double r36499 = r36497 * r36498;
double r36500 = r36494 - r36499;
double r36501 = sqrt(r36500);
double r36502 = r36493 - r36501;
double r36503 = 2.0;
double r36504 = r36503 * r36496;
double r36505 = r36502 / r36504;
double r36506 = r36503 * r36498;
double r36507 = r36493 + r36501;
double r36508 = r36506 / r36507;
double r36509 = r36492 ? r36505 : r36508;
return r36509;
}
double f(double a, double b, double c) {
double r36510 = b;
double r36511 = -3.688468976067863e+161;
bool r36512 = r36510 <= r36511;
double r36513 = 0.0;
bool r36514 = r36510 >= r36513;
double r36515 = -r36510;
double r36516 = r36510 * r36510;
double r36517 = 4.0;
double r36518 = a;
double r36519 = r36517 * r36518;
double r36520 = c;
double r36521 = r36519 * r36520;
double r36522 = r36516 - r36521;
double r36523 = sqrt(r36522);
double r36524 = r36515 - r36523;
double r36525 = 2.0;
double r36526 = r36525 * r36518;
double r36527 = r36524 / r36526;
double r36528 = r36525 * r36520;
double r36529 = r36518 * r36520;
double r36530 = r36529 / r36510;
double r36531 = r36525 * r36530;
double r36532 = r36531 - r36510;
double r36533 = r36532 - r36510;
double r36534 = r36528 / r36533;
double r36535 = r36514 ? r36527 : r36534;
double r36536 = 1.822077811116171e+78;
bool r36537 = r36510 <= r36536;
double r36538 = sqrt(r36523);
double r36539 = r36538 * r36538;
double r36540 = r36515 - r36539;
double r36541 = r36540 / r36526;
double r36542 = r36523 - r36510;
double r36543 = r36528 / r36542;
double r36544 = r36514 ? r36541 : r36543;
double r36545 = 2.0;
double r36546 = r36545 * r36510;
double r36547 = r36531 - r36546;
double r36548 = r36547 / r36526;
double r36549 = r36514 ? r36548 : r36543;
double r36550 = r36537 ? r36544 : r36549;
double r36551 = r36512 ? r36535 : r36550;
return r36551;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -3.688468976067863e+161Initial program 39.1
Simplified39.1
Taylor expanded around -inf 7.5
if -3.688468976067863e+161 < b < 1.822077811116171e+78Initial program 8.9
Simplified8.9
rmApplied add-sqr-sqrt8.9
Applied sqrt-prod9.0
if 1.822077811116171e+78 < b Initial program 43.0
Simplified43.0
Taylor expanded around inf 11.2
Final simplification9.1
herbie shell --seed 2019303
(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)))))))