\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 -4.048421318585583 \cdot 10^{82}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0.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{2 \cdot c}{\left(-b\right) + \left(2 \cdot \left(\frac{\sqrt[3]{a} \cdot \sqrt[3]{a}}{b} \cdot \left(c \cdot \sqrt[3]{a}\right)\right) - b\right)}\\
\end{array}\\
\mathbf{elif}\;b \le 2445759453.4737968:\\
\;\;\;\;\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{\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.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 r40256 = b;
double r40257 = 0.0;
bool r40258 = r40256 >= r40257;
double r40259 = -r40256;
double r40260 = r40256 * r40256;
double r40261 = 4.0;
double r40262 = a;
double r40263 = r40261 * r40262;
double r40264 = c;
double r40265 = r40263 * r40264;
double r40266 = r40260 - r40265;
double r40267 = sqrt(r40266);
double r40268 = r40259 - r40267;
double r40269 = 2.0;
double r40270 = r40269 * r40262;
double r40271 = r40268 / r40270;
double r40272 = r40269 * r40264;
double r40273 = r40259 + r40267;
double r40274 = r40272 / r40273;
double r40275 = r40258 ? r40271 : r40274;
return r40275;
}
double f(double a, double b, double c) {
double r40276 = b;
double r40277 = -4.048421318585583e+82;
bool r40278 = r40276 <= r40277;
double r40279 = 0.0;
bool r40280 = r40276 >= r40279;
double r40281 = -r40276;
double r40282 = r40276 * r40276;
double r40283 = 4.0;
double r40284 = a;
double r40285 = r40283 * r40284;
double r40286 = c;
double r40287 = r40285 * r40286;
double r40288 = r40282 - r40287;
double r40289 = sqrt(r40288);
double r40290 = sqrt(r40289);
double r40291 = r40290 * r40290;
double r40292 = r40281 - r40291;
double r40293 = 2.0;
double r40294 = r40293 * r40284;
double r40295 = r40292 / r40294;
double r40296 = r40293 * r40286;
double r40297 = cbrt(r40284);
double r40298 = r40297 * r40297;
double r40299 = r40298 / r40276;
double r40300 = r40286 * r40297;
double r40301 = r40299 * r40300;
double r40302 = r40293 * r40301;
double r40303 = r40302 - r40276;
double r40304 = r40281 + r40303;
double r40305 = r40296 / r40304;
double r40306 = r40280 ? r40295 : r40305;
double r40307 = 2445759453.473797;
bool r40308 = r40276 <= r40307;
double r40309 = r40281 - r40289;
double r40310 = r40309 / r40294;
double r40311 = r40281 + r40291;
double r40312 = r40296 / r40311;
double r40313 = r40280 ? r40310 : r40312;
double r40314 = r40284 * r40286;
double r40315 = r40314 / r40276;
double r40316 = r40293 * r40315;
double r40317 = r40276 - r40316;
double r40318 = r40281 - r40317;
double r40319 = r40318 / r40294;
double r40320 = r40281 + r40289;
double r40321 = r40296 / r40320;
double r40322 = r40280 ? r40319 : r40321;
double r40323 = r40308 ? r40313 : r40322;
double r40324 = r40278 ? r40306 : r40323;
return r40324;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -4.048421318585583e+82Initial program 28.6
Taylor expanded around -inf 6.3
rmApplied associate-/l*2.7
rmApplied div-inv2.7
Applied add-cube-cbrt2.7
Applied times-frac3.5
Simplified3.5
rmApplied add-sqr-sqrt3.5
Applied sqrt-prod3.5
if -4.048421318585583e+82 < b < 2445759453.473797Initial program 10.0
rmApplied add-sqr-sqrt10.0
Applied sqrt-prod10.1
if 2445759453.473797 < b Initial program 33.1
Taylor expanded around inf 10.9
Final simplification8.6
herbie shell --seed 2020059
(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)))))))