\begin{array}{l}
\mathbf{if}\;b \ge 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.6509659704621613 \cdot 10^{+43}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0:\\
\;\;\;\;\frac{\left(a \cdot \frac{c}{b} - b\right) \cdot 2}{a \cdot 2}\\
\mathbf{else}:\\
\;\;\;\;\frac{c \cdot 2}{\left(a \cdot \frac{c}{b} - b\right) \cdot 2}\\
\end{array}\\
\mathbf{elif}\;b \le 7.356079352631206 \cdot 10^{+120}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0:\\
\;\;\;\;\frac{\left(-b\right) - \sqrt{(\left(-4 \cdot a\right) \cdot c + \left(b \cdot b\right))_*}}{a \cdot 2}\\
\mathbf{else}:\\
\;\;\;\;2 \cdot \frac{c}{\sqrt{\sqrt{(\left(-4 \cdot a\right) \cdot c + \left(b \cdot b\right))_*} - b} \cdot \sqrt{\sqrt{(\left(-4 \cdot a\right) \cdot c + \left(b \cdot b\right))_*} - b}}\\
\end{array}\\
\mathbf{elif}\;b \ge 0:\\
\;\;\;\;\frac{\left(a \cdot \frac{c}{b} - b\right) \cdot 2}{a \cdot 2}\\
\mathbf{else}:\\
\;\;\;\;\frac{c \cdot 2}{\left(a \cdot \frac{c}{b} - b\right) \cdot 2}\\
\end{array}double f(double a, double b, double c) {
double r2887451 = b;
double r2887452 = 0.0;
bool r2887453 = r2887451 >= r2887452;
double r2887454 = -r2887451;
double r2887455 = r2887451 * r2887451;
double r2887456 = 4.0;
double r2887457 = a;
double r2887458 = r2887456 * r2887457;
double r2887459 = c;
double r2887460 = r2887458 * r2887459;
double r2887461 = r2887455 - r2887460;
double r2887462 = sqrt(r2887461);
double r2887463 = r2887454 - r2887462;
double r2887464 = 2.0;
double r2887465 = r2887464 * r2887457;
double r2887466 = r2887463 / r2887465;
double r2887467 = r2887464 * r2887459;
double r2887468 = r2887454 + r2887462;
double r2887469 = r2887467 / r2887468;
double r2887470 = r2887453 ? r2887466 : r2887469;
return r2887470;
}
double f(double a, double b, double c) {
double r2887471 = b;
double r2887472 = -1.6509659704621613e+43;
bool r2887473 = r2887471 <= r2887472;
double r2887474 = 0.0;
bool r2887475 = r2887471 >= r2887474;
double r2887476 = a;
double r2887477 = c;
double r2887478 = r2887477 / r2887471;
double r2887479 = r2887476 * r2887478;
double r2887480 = r2887479 - r2887471;
double r2887481 = 2.0;
double r2887482 = r2887480 * r2887481;
double r2887483 = r2887476 * r2887481;
double r2887484 = r2887482 / r2887483;
double r2887485 = r2887477 * r2887481;
double r2887486 = r2887485 / r2887482;
double r2887487 = r2887475 ? r2887484 : r2887486;
double r2887488 = 7.356079352631206e+120;
bool r2887489 = r2887471 <= r2887488;
double r2887490 = -r2887471;
double r2887491 = -4.0;
double r2887492 = r2887491 * r2887476;
double r2887493 = r2887471 * r2887471;
double r2887494 = fma(r2887492, r2887477, r2887493);
double r2887495 = sqrt(r2887494);
double r2887496 = r2887490 - r2887495;
double r2887497 = r2887496 / r2887483;
double r2887498 = r2887495 - r2887471;
double r2887499 = sqrt(r2887498);
double r2887500 = r2887499 * r2887499;
double r2887501 = r2887477 / r2887500;
double r2887502 = r2887481 * r2887501;
double r2887503 = r2887475 ? r2887497 : r2887502;
double r2887504 = r2887489 ? r2887503 : r2887487;
double r2887505 = r2887473 ? r2887487 : r2887504;
return r2887505;
}



Bits error versus a



Bits error versus b



Bits error versus c
if b < -1.6509659704621613e+43 or 7.356079352631206e+120 < b Initial program 32.4
Taylor expanded around -inf 20.8
Simplified18.8
rmApplied add-sqr-sqrt18.8
Taylor expanded around inf 6.0
Simplified3.8
if -1.6509659704621613e+43 < b < 7.356079352631206e+120Initial program 8.5
Simplified8.5
rmApplied add-sqr-sqrt8.7
Final simplification6.6
herbie shell --seed 2019119 +o rules:numerics
(FPCore (a b c)
:name "jeff quadratic root 1"
(if (>= b 0) (/ (- (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (/ (* 2 c) (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))))))