\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 -4.82289647433212 \cdot 10^{+153}:\\
\;\;\;\;\frac{\left(\frac{c}{b} - \frac{b}{a}\right) \cdot 2}{2}\\
\mathbf{elif}\;b \le 3.289226058156428 \cdot 10^{-70}:\\
\;\;\;\;\frac{\frac{\sqrt{\mathsf{fma}\left(b, b, \left(-4 \cdot a\right) \cdot c\right)} - b}{a}}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{c}{b} \cdot -2}{2}\\
\end{array}double f(double a, double b, double c) {
double r1114606 = b;
double r1114607 = -r1114606;
double r1114608 = r1114606 * r1114606;
double r1114609 = 4.0;
double r1114610 = a;
double r1114611 = r1114609 * r1114610;
double r1114612 = c;
double r1114613 = r1114611 * r1114612;
double r1114614 = r1114608 - r1114613;
double r1114615 = sqrt(r1114614);
double r1114616 = r1114607 + r1114615;
double r1114617 = 2.0;
double r1114618 = r1114617 * r1114610;
double r1114619 = r1114616 / r1114618;
return r1114619;
}
double f(double a, double b, double c) {
double r1114620 = b;
double r1114621 = -4.82289647433212e+153;
bool r1114622 = r1114620 <= r1114621;
double r1114623 = c;
double r1114624 = r1114623 / r1114620;
double r1114625 = a;
double r1114626 = r1114620 / r1114625;
double r1114627 = r1114624 - r1114626;
double r1114628 = 2.0;
double r1114629 = r1114627 * r1114628;
double r1114630 = r1114629 / r1114628;
double r1114631 = 3.289226058156428e-70;
bool r1114632 = r1114620 <= r1114631;
double r1114633 = -4.0;
double r1114634 = r1114633 * r1114625;
double r1114635 = r1114634 * r1114623;
double r1114636 = fma(r1114620, r1114620, r1114635);
double r1114637 = sqrt(r1114636);
double r1114638 = r1114637 - r1114620;
double r1114639 = r1114638 / r1114625;
double r1114640 = r1114639 / r1114628;
double r1114641 = -2.0;
double r1114642 = r1114624 * r1114641;
double r1114643 = r1114642 / r1114628;
double r1114644 = r1114632 ? r1114640 : r1114643;
double r1114645 = r1114622 ? r1114630 : r1114644;
return r1114645;
}



Bits error versus a



Bits error versus b



Bits error versus c
if b < -4.82289647433212e+153Initial program 60.9
Simplified60.9
rmApplied div-inv60.9
Taylor expanded around -inf 2.3
Simplified2.3
if -4.82289647433212e+153 < b < 3.289226058156428e-70Initial program 12.4
Simplified12.4
rmApplied div-inv12.6
rmApplied associate-*r/12.4
Simplified12.4
if 3.289226058156428e-70 < b Initial program 52.2
Simplified52.2
rmApplied div-inv52.2
Taylor expanded around inf 52.2
Simplified52.2
Taylor expanded around inf 9.1
Final simplification10.0
herbie shell --seed 2019142 +o rules:numerics
(FPCore (a b c)
:name "Quadratic roots, full range"
(/ (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)))