\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.3358786167585806 \cdot 10^{154}:\\
\;\;\;\;\frac{\mathsf{fma}\left(2, \frac{a \cdot c}{b}, b \cdot -2\right)}{2 \cdot a}\\
\mathbf{elif}\;b \le 1.94263717460376656 \cdot 10^{24}:\\
\;\;\;\;\frac{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} - b}{2 \cdot a}\\
\mathbf{else}:\\
\;\;\;\;\frac{-2 \cdot \frac{a \cdot c}{b}}{2 \cdot a}\\
\end{array}double f(double a, double b, double c) {
double r41712 = b;
double r41713 = -r41712;
double r41714 = r41712 * r41712;
double r41715 = 4.0;
double r41716 = a;
double r41717 = r41715 * r41716;
double r41718 = c;
double r41719 = r41717 * r41718;
double r41720 = r41714 - r41719;
double r41721 = sqrt(r41720);
double r41722 = r41713 + r41721;
double r41723 = 2.0;
double r41724 = r41723 * r41716;
double r41725 = r41722 / r41724;
return r41725;
}
double f(double a, double b, double c) {
double r41726 = b;
double r41727 = -1.3358786167585806e+154;
bool r41728 = r41726 <= r41727;
double r41729 = 2.0;
double r41730 = a;
double r41731 = c;
double r41732 = r41730 * r41731;
double r41733 = r41732 / r41726;
double r41734 = -2.0;
double r41735 = r41726 * r41734;
double r41736 = fma(r41729, r41733, r41735);
double r41737 = r41729 * r41730;
double r41738 = r41736 / r41737;
double r41739 = 1.9426371746037666e+24;
bool r41740 = r41726 <= r41739;
double r41741 = r41726 * r41726;
double r41742 = 4.0;
double r41743 = r41742 * r41730;
double r41744 = r41743 * r41731;
double r41745 = r41741 - r41744;
double r41746 = sqrt(r41745);
double r41747 = r41746 - r41726;
double r41748 = r41747 / r41737;
double r41749 = -2.0;
double r41750 = r41749 * r41733;
double r41751 = r41750 / r41737;
double r41752 = r41740 ? r41748 : r41751;
double r41753 = r41728 ? r41738 : r41752;
return r41753;
}



Bits error versus a



Bits error versus b



Bits error versus c
if b < -1.3358786167585806e+154Initial program 64.0
rmApplied add-exp-log64.0
Simplified64.0
Taylor expanded around -inf 9.9
Simplified9.9
if -1.3358786167585806e+154 < b < 1.9426371746037666e+24Initial program 16.1
rmApplied add-exp-log19.6
Simplified19.6
rmApplied *-un-lft-identity19.6
Applied log-prod19.6
Applied exp-sum19.6
Simplified19.6
Simplified16.1
if 1.9426371746037666e+24 < b Initial program 56.4
Taylor expanded around inf 15.2
Final simplification15.1
herbie shell --seed 2020046 +o rules:numerics
(FPCore (a b c)
:name "Quadratic roots, full range"
:precision binary64
(/ (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)))