\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 -2.5394590287515435 \cdot 10^{+63}:\\
\;\;\;\;\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}{\left(\left(\left(\frac{a}{\frac{b}{c}}\right)\right) - b\right) \cdot 2}\\
\end{array}\\
\mathbf{elif}\;b \le 2.0167317209326723 \cdot 10^{+50}:\\
\;\;\;\;\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}{\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}}}\\
\end{array}\\
\mathbf{elif}\;b \ge 0:\\
\;\;\;\;\frac{\left(-b\right) - \left(b - 2 \cdot \frac{a \cdot c}{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 r967504 = b;
double r967505 = 0.0;
bool r967506 = r967504 >= r967505;
double r967507 = -r967504;
double r967508 = r967504 * r967504;
double r967509 = 4.0;
double r967510 = a;
double r967511 = r967509 * r967510;
double r967512 = c;
double r967513 = r967511 * r967512;
double r967514 = r967508 - r967513;
double r967515 = sqrt(r967514);
double r967516 = r967507 - r967515;
double r967517 = 2.0;
double r967518 = r967517 * r967510;
double r967519 = r967516 / r967518;
double r967520 = r967517 * r967512;
double r967521 = r967507 + r967515;
double r967522 = r967520 / r967521;
double r967523 = r967506 ? r967519 : r967522;
return r967523;
}
double f(double a, double b, double c) {
double r967524 = b;
double r967525 = -2.5394590287515435e+63;
bool r967526 = r967524 <= r967525;
double r967527 = 0.0;
bool r967528 = r967524 >= r967527;
double r967529 = -r967524;
double r967530 = r967524 * r967524;
double r967531 = 4.0;
double r967532 = a;
double r967533 = r967531 * r967532;
double r967534 = c;
double r967535 = r967533 * r967534;
double r967536 = r967530 - r967535;
double r967537 = sqrt(r967536);
double r967538 = r967529 - r967537;
double r967539 = 2.0;
double r967540 = r967539 * r967532;
double r967541 = r967538 / r967540;
double r967542 = r967534 * r967539;
double r967543 = r967524 / r967534;
double r967544 = r967532 / r967543;
double r967545 = /* ERROR: no posit support in C */;
double r967546 = /* ERROR: no posit support in C */;
double r967547 = r967546 - r967524;
double r967548 = r967547 * r967539;
double r967549 = r967542 / r967548;
double r967550 = r967528 ? r967541 : r967549;
double r967551 = 2.0167317209326723e+50;
bool r967552 = r967524 <= r967551;
double r967553 = sqrt(r967537);
double r967554 = r967553 * r967553;
double r967555 = r967529 + r967554;
double r967556 = r967542 / r967555;
double r967557 = r967528 ? r967541 : r967556;
double r967558 = r967532 * r967534;
double r967559 = r967558 / r967524;
double r967560 = r967539 * r967559;
double r967561 = r967524 - r967560;
double r967562 = r967529 - r967561;
double r967563 = r967562 / r967540;
double r967564 = r967537 + r967529;
double r967565 = r967542 / r967564;
double r967566 = r967528 ? r967563 : r967565;
double r967567 = r967552 ? r967557 : r967566;
double r967568 = r967526 ? r967550 : r967567;
return r967568;
}



Bits error versus a



Bits error versus b



Bits error versus c
if b < -2.5394590287515435e+63Initial program 27.3
Taylor expanded around -inf 7.2
Simplified3.6
rmApplied insert-posit163.7
if -2.5394590287515435e+63 < b < 2.0167317209326723e+50Initial program 9.2
rmApplied add-sqr-sqrt9.3
if 2.0167317209326723e+50 < b Initial program 36.4
Taylor expanded around inf 10.5
Final simplification8.0
herbie shell --seed 2019138
(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)))))))