\begin{array}{l}
\mathbf{if}\;b \ge 0.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.36238828016548459 \cdot 10^{154}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0.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) + \left(2 \cdot \frac{a \cdot c}{b} - b\right)}{2 \cdot a}\\
\end{array}\\
\mathbf{elif}\;b \le 6.93006590621689121 \cdot 10^{79}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0.0:\\
\;\;\;\;\frac{2 \cdot c}{\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}}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\
\end{array}\\
\mathbf{elif}\;b \ge 0.0:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) - \left(b - 2 \cdot \frac{a \cdot c}{b}\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\
\end{array}double f(double a, double b, double c) {
double r43099 = b;
double r43100 = 0.0;
bool r43101 = r43099 >= r43100;
double r43102 = 2.0;
double r43103 = c;
double r43104 = r43102 * r43103;
double r43105 = -r43099;
double r43106 = r43099 * r43099;
double r43107 = 4.0;
double r43108 = a;
double r43109 = r43107 * r43108;
double r43110 = r43109 * r43103;
double r43111 = r43106 - r43110;
double r43112 = sqrt(r43111);
double r43113 = r43105 - r43112;
double r43114 = r43104 / r43113;
double r43115 = r43105 + r43112;
double r43116 = r43102 * r43108;
double r43117 = r43115 / r43116;
double r43118 = r43101 ? r43114 : r43117;
return r43118;
}
double f(double a, double b, double c) {
double r43119 = b;
double r43120 = -1.3623882801654846e+154;
bool r43121 = r43119 <= r43120;
double r43122 = 0.0;
bool r43123 = r43119 >= r43122;
double r43124 = 2.0;
double r43125 = c;
double r43126 = r43124 * r43125;
double r43127 = -r43119;
double r43128 = r43119 * r43119;
double r43129 = 4.0;
double r43130 = a;
double r43131 = r43129 * r43130;
double r43132 = r43131 * r43125;
double r43133 = r43128 - r43132;
double r43134 = sqrt(r43133);
double r43135 = r43127 - r43134;
double r43136 = r43126 / r43135;
double r43137 = r43130 * r43125;
double r43138 = r43137 / r43119;
double r43139 = r43124 * r43138;
double r43140 = r43139 - r43119;
double r43141 = r43127 + r43140;
double r43142 = r43124 * r43130;
double r43143 = r43141 / r43142;
double r43144 = r43123 ? r43136 : r43143;
double r43145 = 6.930065906216891e+79;
bool r43146 = r43119 <= r43145;
double r43147 = sqrt(r43134);
double r43148 = r43147 * r43147;
double r43149 = r43127 - r43148;
double r43150 = r43126 / r43149;
double r43151 = r43127 + r43134;
double r43152 = r43151 / r43142;
double r43153 = r43123 ? r43150 : r43152;
double r43154 = r43119 - r43139;
double r43155 = r43127 - r43154;
double r43156 = r43126 / r43155;
double r43157 = r43123 ? r43156 : r43152;
double r43158 = r43146 ? r43153 : r43157;
double r43159 = r43121 ? r43144 : r43158;
return r43159;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -1.3623882801654846e+154Initial program 64.0
Taylor expanded around -inf 10.0
if -1.3623882801654846e+154 < b < 6.930065906216891e+79Initial program 8.9
rmApplied add-sqr-sqrt8.9
Applied sqrt-prod9.0
if 6.930065906216891e+79 < b Initial program 27.4
Taylor expanded around inf 6.7
Final simplification8.5
herbie shell --seed 2020003
(FPCore (a b c)
:name "jeff quadratic root 2"
:precision binary64
(if (>= b 0.0) (/ (* 2 c) (- (- b) (sqrt (- (* b b) (* (* 4 a) c))))) (/ (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a))))