\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.9862044966069494 \cdot 10^{+41}:\\
\;\;\;\;\frac{c}{b} - \frac{b}{a}\\
\mathbf{elif}\;b \le 1.990519652731023 \cdot 10^{-106}:\\
\;\;\;\;\frac{\left(-b\right) + \sqrt{\left(c \cdot a\right) \cdot -4 + b \cdot b}}{a \cdot 2}\\
\mathbf{elif}\;b \le 1.0350377446088803 \cdot 10^{-69}:\\
\;\;\;\;-\frac{c}{b}\\
\mathbf{elif}\;b \le 3.325219738594455 \cdot 10^{-21}:\\
\;\;\;\;\frac{\frac{b \cdot b - \left(\left(c \cdot a\right) \cdot -4 + b \cdot b\right)}{\left(-b\right) - \sqrt{\left(c \cdot a\right) \cdot -4 + b \cdot b}}}{a \cdot 2}\\
\mathbf{else}:\\
\;\;\;\;-\frac{c}{b}\\
\end{array}double f(double a, double b, double c) {
double r2248245 = b;
double r2248246 = -r2248245;
double r2248247 = r2248245 * r2248245;
double r2248248 = 4.0;
double r2248249 = a;
double r2248250 = r2248248 * r2248249;
double r2248251 = c;
double r2248252 = r2248250 * r2248251;
double r2248253 = r2248247 - r2248252;
double r2248254 = sqrt(r2248253);
double r2248255 = r2248246 + r2248254;
double r2248256 = 2.0;
double r2248257 = r2248256 * r2248249;
double r2248258 = r2248255 / r2248257;
return r2248258;
}
double f(double a, double b, double c) {
double r2248259 = b;
double r2248260 = -2.9862044966069494e+41;
bool r2248261 = r2248259 <= r2248260;
double r2248262 = c;
double r2248263 = r2248262 / r2248259;
double r2248264 = a;
double r2248265 = r2248259 / r2248264;
double r2248266 = r2248263 - r2248265;
double r2248267 = 1.990519652731023e-106;
bool r2248268 = r2248259 <= r2248267;
double r2248269 = -r2248259;
double r2248270 = r2248262 * r2248264;
double r2248271 = -4.0;
double r2248272 = r2248270 * r2248271;
double r2248273 = r2248259 * r2248259;
double r2248274 = r2248272 + r2248273;
double r2248275 = sqrt(r2248274);
double r2248276 = r2248269 + r2248275;
double r2248277 = 2.0;
double r2248278 = r2248264 * r2248277;
double r2248279 = r2248276 / r2248278;
double r2248280 = 1.0350377446088803e-69;
bool r2248281 = r2248259 <= r2248280;
double r2248282 = -r2248263;
double r2248283 = 3.325219738594455e-21;
bool r2248284 = r2248259 <= r2248283;
double r2248285 = r2248273 - r2248274;
double r2248286 = r2248269 - r2248275;
double r2248287 = r2248285 / r2248286;
double r2248288 = r2248287 / r2248278;
double r2248289 = r2248284 ? r2248288 : r2248282;
double r2248290 = r2248281 ? r2248282 : r2248289;
double r2248291 = r2248268 ? r2248279 : r2248290;
double r2248292 = r2248261 ? r2248266 : r2248291;
return r2248292;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -2.9862044966069494e+41Initial program 34.1
Taylor expanded around -inf 6.3
if -2.9862044966069494e+41 < b < 1.990519652731023e-106Initial program 12.8
Taylor expanded around 0 12.8
Simplified12.8
if 1.990519652731023e-106 < b < 1.0350377446088803e-69 or 3.325219738594455e-21 < b Initial program 53.1
Taylor expanded around 0 53.0
Simplified53.0
rmApplied div-inv53.1
Simplified53.1
Taylor expanded around inf 8.7
Simplified8.7
if 1.0350377446088803e-69 < b < 3.325219738594455e-21Initial program 35.7
Taylor expanded around 0 35.5
Simplified35.5
rmApplied flip-+35.6
Simplified35.6
Simplified35.6
Final simplification10.8
herbie shell --seed 2019164
(FPCore (a b c)
:name "Quadratic roots, full range"
(/ (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)))