\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 -1.837273157266162421895849406921430725066 \cdot 10^{132}:\\
\;\;\;\;\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}{2 \cdot \frac{a \cdot c}{b} - 2 \cdot b}\\
\end{array}\\
\mathbf{elif}\;b \le 2.304817802427342839890409580404117994848 \cdot 10^{95}:\\
\;\;\;\;\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}{\sqrt{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}} \cdot \sqrt{\left(-b\right) + \left|\sqrt[3]{b \cdot b - \left(4 \cdot a\right) \cdot c}\right| \cdot \sqrt{\sqrt[3]{b \cdot b - \left(4 \cdot a\right) \cdot c}}}}\\
\end{array}\\
\mathbf{elif}\;b \ge 0.0:\\
\;\;\;\;\frac{\left(-b\right) - \left(b - 2 \cdot \frac{a \cdot c}{b}\right)}{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}double f(double a, double b, double c) {
double r39120 = b;
double r39121 = 0.0;
bool r39122 = r39120 >= r39121;
double r39123 = -r39120;
double r39124 = r39120 * r39120;
double r39125 = 4.0;
double r39126 = a;
double r39127 = r39125 * r39126;
double r39128 = c;
double r39129 = r39127 * r39128;
double r39130 = r39124 - r39129;
double r39131 = sqrt(r39130);
double r39132 = r39123 - r39131;
double r39133 = 2.0;
double r39134 = r39133 * r39126;
double r39135 = r39132 / r39134;
double r39136 = r39133 * r39128;
double r39137 = r39123 + r39131;
double r39138 = r39136 / r39137;
double r39139 = r39122 ? r39135 : r39138;
return r39139;
}
double f(double a, double b, double c) {
double r39140 = b;
double r39141 = -1.8372731572661624e+132;
bool r39142 = r39140 <= r39141;
double r39143 = 0.0;
bool r39144 = r39140 >= r39143;
double r39145 = -r39140;
double r39146 = r39140 * r39140;
double r39147 = 4.0;
double r39148 = a;
double r39149 = r39147 * r39148;
double r39150 = c;
double r39151 = r39149 * r39150;
double r39152 = r39146 - r39151;
double r39153 = sqrt(r39152);
double r39154 = r39145 - r39153;
double r39155 = 2.0;
double r39156 = r39155 * r39148;
double r39157 = r39154 / r39156;
double r39158 = r39155 * r39150;
double r39159 = r39148 * r39150;
double r39160 = r39159 / r39140;
double r39161 = r39155 * r39160;
double r39162 = 2.0;
double r39163 = r39162 * r39140;
double r39164 = r39161 - r39163;
double r39165 = r39158 / r39164;
double r39166 = r39144 ? r39157 : r39165;
double r39167 = 2.3048178024273428e+95;
bool r39168 = r39140 <= r39167;
double r39169 = r39145 + r39153;
double r39170 = sqrt(r39169);
double r39171 = cbrt(r39152);
double r39172 = fabs(r39171);
double r39173 = sqrt(r39171);
double r39174 = r39172 * r39173;
double r39175 = r39145 + r39174;
double r39176 = sqrt(r39175);
double r39177 = r39170 * r39176;
double r39178 = r39158 / r39177;
double r39179 = r39144 ? r39157 : r39178;
double r39180 = r39140 - r39161;
double r39181 = r39145 - r39180;
double r39182 = r39181 / r39156;
double r39183 = r39158 / r39169;
double r39184 = r39144 ? r39182 : r39183;
double r39185 = r39168 ? r39179 : r39184;
double r39186 = r39142 ? r39166 : r39185;
return r39186;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -1.8372731572661624e+132Initial program 34.3
Taylor expanded around -inf 5.9
if -1.8372731572661624e+132 < b < 2.3048178024273428e+95Initial program 9.0
rmApplied add-sqr-sqrt9.2
rmApplied add-cube-cbrt9.2
Applied sqrt-prod9.2
Simplified9.2
if 2.3048178024273428e+95 < b Initial program 44.3
Taylor expanded around inf 10.0
Final simplification8.6
herbie shell --seed 2019294
(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)))))))