\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 -4.857035850990442 \cdot 10^{+175}:\\
\;\;\;\;\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 3.1115579814291686 \cdot 10^{+29}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 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{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}{b} \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 r944730 = b;
double r944731 = 0.0;
bool r944732 = r944730 >= r944731;
double r944733 = -r944730;
double r944734 = r944730 * r944730;
double r944735 = 4.0;
double r944736 = a;
double r944737 = r944735 * r944736;
double r944738 = c;
double r944739 = r944737 * r944738;
double r944740 = r944734 - r944739;
double r944741 = sqrt(r944740);
double r944742 = r944733 - r944741;
double r944743 = 2.0;
double r944744 = r944743 * r944736;
double r944745 = r944742 / r944744;
double r944746 = r944743 * r944738;
double r944747 = r944733 + r944741;
double r944748 = r944746 / r944747;
double r944749 = r944732 ? r944745 : r944748;
return r944749;
}
double f(double a, double b, double c) {
double r944750 = b;
double r944751 = -4.857035850990442e+175;
bool r944752 = r944750 <= r944751;
double r944753 = 0.0;
bool r944754 = r944750 >= r944753;
double r944755 = -r944750;
double r944756 = r944750 * r944750;
double r944757 = 4.0;
double r944758 = a;
double r944759 = r944757 * r944758;
double r944760 = c;
double r944761 = r944759 * r944760;
double r944762 = r944756 - r944761;
double r944763 = sqrt(r944762);
double r944764 = r944755 - r944763;
double r944765 = 2.0;
double r944766 = r944765 * r944758;
double r944767 = r944764 / r944766;
double r944768 = r944760 * r944765;
double r944769 = r944758 * r944760;
double r944770 = r944769 / r944750;
double r944771 = r944770 - r944750;
double r944772 = r944765 * r944771;
double r944773 = r944768 / r944772;
double r944774 = r944754 ? r944767 : r944773;
double r944775 = 3.1115579814291686e+29;
bool r944776 = r944750 <= r944775;
double r944777 = sqrt(r944763);
double r944778 = r944777 * r944777;
double r944779 = r944755 - r944778;
double r944780 = r944779 / r944766;
double r944781 = r944763 + r944755;
double r944782 = r944768 / r944781;
double r944783 = r944754 ? r944780 : r944782;
double r944784 = r944758 / r944750;
double r944785 = r944784 * r944760;
double r944786 = r944785 - r944750;
double r944787 = r944765 * r944786;
double r944788 = r944787 / r944766;
double r944789 = r944754 ? r944788 : r944782;
double r944790 = r944776 ? r944783 : r944789;
double r944791 = r944752 ? r944774 : r944790;
return r944791;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -4.857035850990442e+175Initial program 38.1
rmApplied add-sqr-sqrt38.1
Applied sqrt-prod38.1
Taylor expanded around -inf 6.7
Simplified6.7
if -4.857035850990442e+175 < b < 3.1115579814291686e+29Initial program 9.9
rmApplied add-sqr-sqrt9.9
Applied sqrt-prod9.9
if 3.1115579814291686e+29 < b Initial program 34.4
Taylor expanded around inf 11.3
Simplified6.3
Final simplification8.7
herbie shell --seed 2019134
(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)))))))