\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.328348355692401367625700175591396004283 \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(2 \cdot \frac{a \cdot c}{b} - b\right) - b}{2 \cdot a}\\
\end{array}\\
\mathbf{elif}\;b \le 1.868509219971100725776522881137913609515 \cdot 10^{90}:\\
\;\;\;\;\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{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} - b}{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{\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}} - b}{2 \cdot a}\\
\end{array}double f(double a, double b, double c) {
double r30325 = b;
double r30326 = 0.0;
bool r30327 = r30325 >= r30326;
double r30328 = 2.0;
double r30329 = c;
double r30330 = r30328 * r30329;
double r30331 = -r30325;
double r30332 = r30325 * r30325;
double r30333 = 4.0;
double r30334 = a;
double r30335 = r30333 * r30334;
double r30336 = r30335 * r30329;
double r30337 = r30332 - r30336;
double r30338 = sqrt(r30337);
double r30339 = r30331 - r30338;
double r30340 = r30330 / r30339;
double r30341 = r30331 + r30338;
double r30342 = r30328 * r30334;
double r30343 = r30341 / r30342;
double r30344 = r30327 ? r30340 : r30343;
return r30344;
}
double f(double a, double b, double c) {
double r30345 = b;
double r30346 = -1.3283483556924014e+154;
bool r30347 = r30345 <= r30346;
double r30348 = 0.0;
bool r30349 = r30345 >= r30348;
double r30350 = 2.0;
double r30351 = c;
double r30352 = r30350 * r30351;
double r30353 = -r30345;
double r30354 = r30345 * r30345;
double r30355 = 4.0;
double r30356 = a;
double r30357 = r30355 * r30356;
double r30358 = r30357 * r30351;
double r30359 = r30354 - r30358;
double r30360 = sqrt(r30359);
double r30361 = r30353 - r30360;
double r30362 = r30352 / r30361;
double r30363 = r30356 * r30351;
double r30364 = r30363 / r30345;
double r30365 = r30350 * r30364;
double r30366 = r30365 - r30345;
double r30367 = r30366 - r30345;
double r30368 = r30350 * r30356;
double r30369 = r30367 / r30368;
double r30370 = r30349 ? r30362 : r30369;
double r30371 = 1.8685092199711007e+90;
bool r30372 = r30345 <= r30371;
double r30373 = sqrt(r30360);
double r30374 = r30373 * r30373;
double r30375 = r30353 - r30374;
double r30376 = r30352 / r30375;
double r30377 = r30360 - r30345;
double r30378 = r30377 / r30368;
double r30379 = r30349 ? r30376 : r30378;
double r30380 = r30345 - r30365;
double r30381 = r30353 - r30380;
double r30382 = r30352 / r30381;
double r30383 = r30374 - r30345;
double r30384 = r30383 / r30368;
double r30385 = r30349 ? r30382 : r30384;
double r30386 = r30372 ? r30379 : r30385;
double r30387 = r30347 ? r30370 : r30386;
return r30387;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -1.3283483556924014e+154Initial program 64.0
Simplified64.0
rmApplied add-cube-cbrt64.0
Taylor expanded around -inf 11.9
if -1.3283483556924014e+154 < b < 1.8685092199711007e+90Initial program 8.7
Simplified8.7
rmApplied add-sqr-sqrt8.7
Applied sqrt-prod8.8
if 1.8685092199711007e+90 < b Initial program 28.8
Simplified28.8
rmApplied add-sqr-sqrt28.8
Applied sqrt-prod28.8
Taylor expanded around inf 6.5
Final simplification8.6
herbie shell --seed 2019347
(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))))