\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}{\mathsf{fma}\left(2, \frac{a \cdot c}{b}, -2 \cdot b\right)}\\
\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{\mathsf{fma}\left(b, b, -\left(4 \cdot a\right) \cdot c\right)}} \cdot \sqrt{\sqrt{\mathsf{fma}\left(b, b, -\left(4 \cdot a\right) \cdot c\right)}}}{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{\mathsf{fma}\left(\frac{a \cdot c}{b}, 2, b \cdot -2\right)}{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 r39502 = b;
double r39503 = 0.0;
bool r39504 = r39502 >= r39503;
double r39505 = -r39502;
double r39506 = r39502 * r39502;
double r39507 = 4.0;
double r39508 = a;
double r39509 = r39507 * r39508;
double r39510 = c;
double r39511 = r39509 * r39510;
double r39512 = r39506 - r39511;
double r39513 = sqrt(r39512);
double r39514 = r39505 - r39513;
double r39515 = 2.0;
double r39516 = r39515 * r39508;
double r39517 = r39514 / r39516;
double r39518 = r39515 * r39510;
double r39519 = r39505 + r39513;
double r39520 = r39518 / r39519;
double r39521 = r39504 ? r39517 : r39520;
return r39521;
}
double f(double a, double b, double c) {
double r39522 = b;
double r39523 = -3.688468976067863e+161;
bool r39524 = r39522 <= r39523;
double r39525 = 0.0;
bool r39526 = r39522 >= r39525;
double r39527 = -r39522;
double r39528 = r39522 * r39522;
double r39529 = 4.0;
double r39530 = a;
double r39531 = r39529 * r39530;
double r39532 = c;
double r39533 = r39531 * r39532;
double r39534 = r39528 - r39533;
double r39535 = sqrt(r39534);
double r39536 = r39527 - r39535;
double r39537 = 2.0;
double r39538 = r39537 * r39530;
double r39539 = r39536 / r39538;
double r39540 = r39537 * r39532;
double r39541 = r39530 * r39532;
double r39542 = r39541 / r39522;
double r39543 = -2.0;
double r39544 = r39543 * r39522;
double r39545 = fma(r39537, r39542, r39544);
double r39546 = r39540 / r39545;
double r39547 = r39526 ? r39539 : r39546;
double r39548 = 1.822077811116171e+78;
bool r39549 = r39522 <= r39548;
double r39550 = -r39533;
double r39551 = fma(r39522, r39522, r39550);
double r39552 = sqrt(r39551);
double r39553 = sqrt(r39552);
double r39554 = r39553 * r39553;
double r39555 = r39527 - r39554;
double r39556 = r39555 / r39538;
double r39557 = r39535 - r39522;
double r39558 = r39540 / r39557;
double r39559 = r39526 ? r39556 : r39558;
double r39560 = r39522 * r39543;
double r39561 = fma(r39542, r39537, r39560);
double r39562 = r39561 / r39538;
double r39563 = r39526 ? r39562 : r39558;
double r39564 = r39549 ? r39559 : r39563;
double r39565 = r39524 ? r39547 : r39564;
return r39565;
}



Bits error versus a



Bits error versus b



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