\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 -7.397994825724217 \cdot 10^{+150}:\\
\;\;\;\;\frac{\left(\frac{c}{b} - \frac{b}{a}\right) \cdot 2}{2}\\
\mathbf{elif}\;b \le 1.2158870426682226 \cdot 10^{-82}:\\
\;\;\;\;\frac{\frac{1}{\frac{a}{\sqrt{\mathsf{fma}\left(b, b, \left(-4 \cdot c\right) \cdot a\right)} - b}}}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{-2 \cdot \frac{c}{b}}{2}\\
\end{array}double f(double a, double b, double c) {
double r1739738 = b;
double r1739739 = -r1739738;
double r1739740 = r1739738 * r1739738;
double r1739741 = 4.0;
double r1739742 = a;
double r1739743 = r1739741 * r1739742;
double r1739744 = c;
double r1739745 = r1739743 * r1739744;
double r1739746 = r1739740 - r1739745;
double r1739747 = sqrt(r1739746);
double r1739748 = r1739739 + r1739747;
double r1739749 = 2.0;
double r1739750 = r1739749 * r1739742;
double r1739751 = r1739748 / r1739750;
return r1739751;
}
double f(double a, double b, double c) {
double r1739752 = b;
double r1739753 = -7.397994825724217e+150;
bool r1739754 = r1739752 <= r1739753;
double r1739755 = c;
double r1739756 = r1739755 / r1739752;
double r1739757 = a;
double r1739758 = r1739752 / r1739757;
double r1739759 = r1739756 - r1739758;
double r1739760 = 2.0;
double r1739761 = r1739759 * r1739760;
double r1739762 = r1739761 / r1739760;
double r1739763 = 1.2158870426682226e-82;
bool r1739764 = r1739752 <= r1739763;
double r1739765 = 1.0;
double r1739766 = -4.0;
double r1739767 = r1739766 * r1739755;
double r1739768 = r1739767 * r1739757;
double r1739769 = fma(r1739752, r1739752, r1739768);
double r1739770 = sqrt(r1739769);
double r1739771 = r1739770 - r1739752;
double r1739772 = r1739757 / r1739771;
double r1739773 = r1739765 / r1739772;
double r1739774 = r1739773 / r1739760;
double r1739775 = -2.0;
double r1739776 = r1739775 * r1739756;
double r1739777 = r1739776 / r1739760;
double r1739778 = r1739764 ? r1739774 : r1739777;
double r1739779 = r1739754 ? r1739762 : r1739778;
return r1739779;
}



Bits error versus a



Bits error versus b



Bits error versus c
if b < -7.397994825724217e+150Initial program 59.1
Simplified59.1
rmApplied associate-*l*59.1
Taylor expanded around -inf 2.2
Simplified2.2
if -7.397994825724217e+150 < b < 1.2158870426682226e-82Initial program 11.8
Simplified11.8
rmApplied associate-*l*11.7
rmApplied clear-num11.9
if 1.2158870426682226e-82 < b Initial program 52.3
Simplified52.3
rmApplied associate-*l*52.3
Taylor expanded around inf 9.9
Final simplification10.0
herbie shell --seed 2019162 +o rules:numerics
(FPCore (a b c)
:name "Quadratic roots, full range"
(/ (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)))