\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 -3.263941314600607 \cdot 10^{+152}:\\
\;\;\;\;\frac{c}{b} - \frac{b}{a}\\
\mathbf{elif}\;b \le 1.8378252714625124 \cdot 10^{-19}:\\
\;\;\;\;\frac{\sqrt{b \cdot b - 4 \cdot \left(c \cdot a\right)} - b}{\frac{a}{\frac{1}{2}}}\\
\mathbf{else}:\\
\;\;\;\;-\frac{c}{b}\\
\end{array}double f(double a, double b, double c) {
double r880263 = b;
double r880264 = -r880263;
double r880265 = r880263 * r880263;
double r880266 = 4.0;
double r880267 = a;
double r880268 = r880266 * r880267;
double r880269 = c;
double r880270 = r880268 * r880269;
double r880271 = r880265 - r880270;
double r880272 = sqrt(r880271);
double r880273 = r880264 + r880272;
double r880274 = 2.0;
double r880275 = r880274 * r880267;
double r880276 = r880273 / r880275;
return r880276;
}
double f(double a, double b, double c) {
double r880277 = b;
double r880278 = -3.263941314600607e+152;
bool r880279 = r880277 <= r880278;
double r880280 = c;
double r880281 = r880280 / r880277;
double r880282 = a;
double r880283 = r880277 / r880282;
double r880284 = r880281 - r880283;
double r880285 = 1.8378252714625124e-19;
bool r880286 = r880277 <= r880285;
double r880287 = r880277 * r880277;
double r880288 = 4.0;
double r880289 = r880280 * r880282;
double r880290 = r880288 * r880289;
double r880291 = r880287 - r880290;
double r880292 = sqrt(r880291);
double r880293 = r880292 - r880277;
double r880294 = 0.5;
double r880295 = r880282 / r880294;
double r880296 = r880293 / r880295;
double r880297 = -r880281;
double r880298 = r880286 ? r880296 : r880297;
double r880299 = r880279 ? r880284 : r880298;
return r880299;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -3.263941314600607e+152Initial program 60.1
Simplified60.1
Taylor expanded around -inf 2.3
if -3.263941314600607e+152 < b < 1.8378252714625124e-19Initial program 14.1
Simplified14.2
rmApplied *-un-lft-identity14.2
Applied associate-/l*14.3
rmApplied *-un-lft-identity14.3
Applied add-sqr-sqrt14.3
Applied times-frac14.3
Simplified14.3
Simplified14.2
if 1.8378252714625124e-19 < b Initial program 54.4
Simplified54.4
Taylor expanded around inf 7.0
Simplified7.0
Final simplification10.3
herbie shell --seed 2019128
(FPCore (a b c)
:name "Quadratic roots, full range"
(/ (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)))