\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\begin{array}{l}
\mathbf{if}\;b \le -1.547666603636537260513437138645901028344 \cdot 10^{50}:\\
\;\;\;\;1 \cdot \left(\frac{c}{b} - \frac{b}{a}\right)\\
\mathbf{elif}\;b \le 7.455592343308264166675918758902222662503 \cdot 10^{-170}:\\
\;\;\;\;\frac{1}{\frac{2 \cdot a}{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} - b}}\\
\mathbf{else}:\\
\;\;\;\;-1 \cdot \frac{c}{b}\\
\end{array}double f(double a, double b, double c) {
double r37463 = b;
double r37464 = -r37463;
double r37465 = r37463 * r37463;
double r37466 = 4.0;
double r37467 = a;
double r37468 = r37466 * r37467;
double r37469 = c;
double r37470 = r37468 * r37469;
double r37471 = r37465 - r37470;
double r37472 = sqrt(r37471);
double r37473 = r37464 + r37472;
double r37474 = 2.0;
double r37475 = r37474 * r37467;
double r37476 = r37473 / r37475;
return r37476;
}
double f(double a, double b, double c) {
double r37477 = b;
double r37478 = -1.5476666036365373e+50;
bool r37479 = r37477 <= r37478;
double r37480 = 1.0;
double r37481 = c;
double r37482 = r37481 / r37477;
double r37483 = a;
double r37484 = r37477 / r37483;
double r37485 = r37482 - r37484;
double r37486 = r37480 * r37485;
double r37487 = 7.455592343308264e-170;
bool r37488 = r37477 <= r37487;
double r37489 = 1.0;
double r37490 = 2.0;
double r37491 = r37490 * r37483;
double r37492 = r37477 * r37477;
double r37493 = 4.0;
double r37494 = r37493 * r37483;
double r37495 = r37494 * r37481;
double r37496 = r37492 - r37495;
double r37497 = sqrt(r37496);
double r37498 = r37497 - r37477;
double r37499 = r37491 / r37498;
double r37500 = r37489 / r37499;
double r37501 = -1.0;
double r37502 = r37501 * r37482;
double r37503 = r37488 ? r37500 : r37502;
double r37504 = r37479 ? r37486 : r37503;
return r37504;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -1.5476666036365373e+50Initial program 37.8
Taylor expanded around -inf 5.8
Simplified5.8
if -1.5476666036365373e+50 < b < 7.455592343308264e-170Initial program 12.4
rmApplied clear-num12.5
Simplified12.5
if 7.455592343308264e-170 < b Initial program 48.9
Taylor expanded around inf 14.1
Final simplification11.9
herbie shell --seed 2019323
(FPCore (a b c)
:name "Quadratic roots, full range"
:precision binary64
(/ (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)))