\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 -2.900769547116861 \cdot 10^{+46}:\\
\;\;\;\;\frac{c}{b} - \frac{b}{a}\\
\mathbf{elif}\;b \le 1.6528810740721013 \cdot 10^{-142}:\\
\;\;\;\;\left(\left(-b\right) + \sqrt{b \cdot b - c \cdot \left(4 \cdot a\right)}\right) \cdot \frac{\frac{1}{2}}{a}\\
\mathbf{else}:\\
\;\;\;\;-\frac{c}{b}\\
\end{array}double f(double a, double b, double c) {
double r1806097 = b;
double r1806098 = -r1806097;
double r1806099 = r1806097 * r1806097;
double r1806100 = 4.0;
double r1806101 = a;
double r1806102 = r1806100 * r1806101;
double r1806103 = c;
double r1806104 = r1806102 * r1806103;
double r1806105 = r1806099 - r1806104;
double r1806106 = sqrt(r1806105);
double r1806107 = r1806098 + r1806106;
double r1806108 = 2.0;
double r1806109 = r1806108 * r1806101;
double r1806110 = r1806107 / r1806109;
return r1806110;
}
double f(double a, double b, double c) {
double r1806111 = b;
double r1806112 = -2.900769547116861e+46;
bool r1806113 = r1806111 <= r1806112;
double r1806114 = c;
double r1806115 = r1806114 / r1806111;
double r1806116 = a;
double r1806117 = r1806111 / r1806116;
double r1806118 = r1806115 - r1806117;
double r1806119 = 1.6528810740721013e-142;
bool r1806120 = r1806111 <= r1806119;
double r1806121 = -r1806111;
double r1806122 = r1806111 * r1806111;
double r1806123 = 4.0;
double r1806124 = r1806123 * r1806116;
double r1806125 = r1806114 * r1806124;
double r1806126 = r1806122 - r1806125;
double r1806127 = sqrt(r1806126);
double r1806128 = r1806121 + r1806127;
double r1806129 = 0.5;
double r1806130 = r1806129 / r1806116;
double r1806131 = r1806128 * r1806130;
double r1806132 = -r1806115;
double r1806133 = r1806120 ? r1806131 : r1806132;
double r1806134 = r1806113 ? r1806118 : r1806133;
return r1806134;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -2.900769547116861e+46Initial program 35.9
Taylor expanded around -inf 5.3
if -2.900769547116861e+46 < b < 1.6528810740721013e-142Initial program 11.5
rmApplied div-inv11.7
Simplified11.7
if 1.6528810740721013e-142 < b Initial program 50.1
Taylor expanded around inf 12.0
Simplified12.0
Final simplification10.5
herbie shell --seed 2019168
(FPCore (a b c)
:name "Quadratic roots, full range"
(/ (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)))