\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.2495719643022808 \cdot 10^{135}:\\
\;\;\;\;\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 7.35146897748971308 \cdot 10^{79}:\\
\;\;\;\;\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{2 \cdot \frac{a \cdot c}{b} - 2 \cdot b}{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 r26342 = b;
double r26343 = 0.0;
bool r26344 = r26342 >= r26343;
double r26345 = -r26342;
double r26346 = r26342 * r26342;
double r26347 = 4.0;
double r26348 = a;
double r26349 = r26347 * r26348;
double r26350 = c;
double r26351 = r26349 * r26350;
double r26352 = r26346 - r26351;
double r26353 = sqrt(r26352);
double r26354 = r26345 - r26353;
double r26355 = 2.0;
double r26356 = r26355 * r26348;
double r26357 = r26354 / r26356;
double r26358 = r26355 * r26350;
double r26359 = r26345 + r26353;
double r26360 = r26358 / r26359;
double r26361 = r26344 ? r26357 : r26360;
return r26361;
}
double f(double a, double b, double c) {
double r26362 = b;
double r26363 = -1.2495719643022808e+135;
bool r26364 = r26362 <= r26363;
double r26365 = 0.0;
bool r26366 = r26362 >= r26365;
double r26367 = -r26362;
double r26368 = r26362 * r26362;
double r26369 = 4.0;
double r26370 = a;
double r26371 = r26369 * r26370;
double r26372 = c;
double r26373 = r26371 * r26372;
double r26374 = r26368 - r26373;
double r26375 = sqrt(r26374);
double r26376 = r26367 - r26375;
double r26377 = 2.0;
double r26378 = r26377 * r26370;
double r26379 = r26376 / r26378;
double r26380 = r26377 * r26372;
double r26381 = r26370 * r26372;
double r26382 = r26381 / r26362;
double r26383 = r26377 * r26382;
double r26384 = 2.0;
double r26385 = r26384 * r26362;
double r26386 = r26383 - r26385;
double r26387 = r26380 / r26386;
double r26388 = r26366 ? r26379 : r26387;
double r26389 = 7.351468977489713e+79;
bool r26390 = r26362 <= r26389;
double r26391 = sqrt(r26375);
double r26392 = r26391 * r26391;
double r26393 = r26367 + r26392;
double r26394 = r26380 / r26393;
double r26395 = r26366 ? r26379 : r26394;
double r26396 = r26386 / r26378;
double r26397 = r26367 + r26375;
double r26398 = r26380 / r26397;
double r26399 = r26366 ? r26396 : r26398;
double r26400 = r26390 ? r26395 : r26399;
double r26401 = r26364 ? r26388 : r26400;
return r26401;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -1.2495719643022808e+135Initial program 34.7
rmApplied add-sqr-sqrt34.7
Applied sqrt-prod34.7
Taylor expanded around -inf 5.5
if -1.2495719643022808e+135 < b < 7.351468977489713e+79Initial program 8.8
rmApplied add-sqr-sqrt8.8
Applied sqrt-prod8.9
if 7.351468977489713e+79 < b Initial program 41.8
rmApplied add-sqr-sqrt41.8
Applied sqrt-prod41.9
Taylor expanded around inf 10.2
Final simplification8.5
herbie shell --seed 2020003
(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)))))))