\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.3437359308500901 \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 1.31998195619180524 \cdot 10^{84}:\\
\;\;\;\;\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 r24270 = b;
double r24271 = 0.0;
bool r24272 = r24270 >= r24271;
double r24273 = 2.0;
double r24274 = c;
double r24275 = r24273 * r24274;
double r24276 = -r24270;
double r24277 = r24270 * r24270;
double r24278 = 4.0;
double r24279 = a;
double r24280 = r24278 * r24279;
double r24281 = r24280 * r24274;
double r24282 = r24277 - r24281;
double r24283 = sqrt(r24282);
double r24284 = r24276 - r24283;
double r24285 = r24275 / r24284;
double r24286 = r24276 + r24283;
double r24287 = r24273 * r24279;
double r24288 = r24286 / r24287;
double r24289 = r24272 ? r24285 : r24288;
return r24289;
}
double f(double a, double b, double c) {
double r24290 = b;
double r24291 = -1.34373593085009e+154;
bool r24292 = r24290 <= r24291;
double r24293 = 0.0;
bool r24294 = r24290 >= r24293;
double r24295 = 2.0;
double r24296 = c;
double r24297 = r24295 * r24296;
double r24298 = -r24290;
double r24299 = r24290 * r24290;
double r24300 = 4.0;
double r24301 = a;
double r24302 = r24300 * r24301;
double r24303 = r24302 * r24296;
double r24304 = r24299 - r24303;
double r24305 = sqrt(r24304);
double r24306 = r24298 - r24305;
double r24307 = r24297 / r24306;
double r24308 = r24301 * r24296;
double r24309 = r24308 / r24290;
double r24310 = r24295 * r24309;
double r24311 = r24310 - r24290;
double r24312 = r24298 + r24311;
double r24313 = r24295 * r24301;
double r24314 = r24312 / r24313;
double r24315 = r24294 ? r24307 : r24314;
double r24316 = 1.3199819561918052e+84;
bool r24317 = r24290 <= r24316;
double r24318 = sqrt(r24305);
double r24319 = r24318 * r24318;
double r24320 = r24298 - r24319;
double r24321 = r24297 / r24320;
double r24322 = r24298 + r24305;
double r24323 = r24322 / r24313;
double r24324 = r24294 ? r24321 : r24323;
double r24325 = r24290 - r24310;
double r24326 = r24298 - r24325;
double r24327 = r24297 / r24326;
double r24328 = r24294 ? r24327 : r24323;
double r24329 = r24317 ? r24324 : r24328;
double r24330 = r24292 ? r24315 : r24329;
return r24330;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -1.34373593085009e+154Initial program 64.0
Taylor expanded around -inf 12.5
if -1.34373593085009e+154 < b < 1.3199819561918052e+84Initial program 9.0
rmApplied add-sqr-sqrt9.0
Applied sqrt-prod9.1
if 1.3199819561918052e+84 < b Initial program 28.6
Taylor expanded around inf 6.5
Final simplification8.8
herbie shell --seed 2020056
(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))))