\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 -1.56549847594674 \cdot 10^{+97}:\\
\;\;\;\;\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(2 \cdot \frac{a \cdot c}{b} - b\right) + \left(-b\right)}{2 \cdot a}\\
\end{array}\\
\mathbf{elif}\;b \le 1.37593608973837 \cdot 10^{+37}:\\
\;\;\;\;\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(\frac{a}{\frac{b}{c}} - 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 r713734 = b;
double r713735 = 0.0;
bool r713736 = r713734 >= r713735;
double r713737 = 2.0;
double r713738 = c;
double r713739 = r713737 * r713738;
double r713740 = -r713734;
double r713741 = r713734 * r713734;
double r713742 = 4.0;
double r713743 = a;
double r713744 = r713742 * r713743;
double r713745 = r713744 * r713738;
double r713746 = r713741 - r713745;
double r713747 = sqrt(r713746);
double r713748 = r713740 - r713747;
double r713749 = r713739 / r713748;
double r713750 = r713740 + r713747;
double r713751 = r713737 * r713743;
double r713752 = r713750 / r713751;
double r713753 = r713736 ? r713749 : r713752;
return r713753;
}
double f(double a, double b, double c) {
double r713754 = b;
double r713755 = -1.56549847594674e+97;
bool r713756 = r713754 <= r713755;
double r713757 = 0.0;
bool r713758 = r713754 >= r713757;
double r713759 = 2.0;
double r713760 = c;
double r713761 = r713759 * r713760;
double r713762 = -r713754;
double r713763 = r713754 * r713754;
double r713764 = 4.0;
double r713765 = a;
double r713766 = r713764 * r713765;
double r713767 = r713766 * r713760;
double r713768 = r713763 - r713767;
double r713769 = sqrt(r713768);
double r713770 = r713762 - r713769;
double r713771 = r713761 / r713770;
double r713772 = r713765 * r713760;
double r713773 = r713772 / r713754;
double r713774 = r713759 * r713773;
double r713775 = r713774 - r713754;
double r713776 = r713775 + r713762;
double r713777 = r713759 * r713765;
double r713778 = r713776 / r713777;
double r713779 = r713758 ? r713771 : r713778;
double r713780 = 1.37593608973837e+37;
bool r713781 = r713754 <= r713780;
double r713782 = sqrt(r713769);
double r713783 = r713782 * r713782;
double r713784 = r713762 + r713783;
double r713785 = r713784 / r713777;
double r713786 = r713758 ? r713771 : r713785;
double r713787 = r713754 / r713760;
double r713788 = r713765 / r713787;
double r713789 = r713788 - r713754;
double r713790 = r713789 * r713759;
double r713791 = r713761 / r713790;
double r713792 = r713769 + r713762;
double r713793 = r713792 / r713777;
double r713794 = r713758 ? r713791 : r713793;
double r713795 = r713781 ? r713786 : r713794;
double r713796 = r713756 ? r713779 : r713795;
return r713796;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -1.56549847594674e+97Initial program 44.4
Taylor expanded around -inf 10.2
if -1.56549847594674e+97 < b < 1.37593608973837e+37Initial program 9.1
rmApplied add-sqr-sqrt9.1
Applied sqrt-prod9.2
if 1.37593608973837e+37 < b Initial program 24.6
Taylor expanded around inf 7.7
Simplified4.7
Final simplification8.0
herbie shell --seed 2019149
(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))))