\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(a \cdot c\right) \cdot -4\right)} - b}}}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{-2 \cdot \frac{c}{b}}{2}\\
\end{array}double f(double a, double b, double c) {
double r1361604 = b;
double r1361605 = -r1361604;
double r1361606 = r1361604 * r1361604;
double r1361607 = 4.0;
double r1361608 = a;
double r1361609 = r1361607 * r1361608;
double r1361610 = c;
double r1361611 = r1361609 * r1361610;
double r1361612 = r1361606 - r1361611;
double r1361613 = sqrt(r1361612);
double r1361614 = r1361605 + r1361613;
double r1361615 = 2.0;
double r1361616 = r1361615 * r1361608;
double r1361617 = r1361614 / r1361616;
return r1361617;
}
double f(double a, double b, double c) {
double r1361618 = b;
double r1361619 = -7.397994825724217e+150;
bool r1361620 = r1361618 <= r1361619;
double r1361621 = c;
double r1361622 = r1361621 / r1361618;
double r1361623 = a;
double r1361624 = r1361618 / r1361623;
double r1361625 = r1361622 - r1361624;
double r1361626 = 2.0;
double r1361627 = r1361625 * r1361626;
double r1361628 = r1361627 / r1361626;
double r1361629 = 1.2158870426682226e-82;
bool r1361630 = r1361618 <= r1361629;
double r1361631 = 1.0;
double r1361632 = r1361623 * r1361621;
double r1361633 = -4.0;
double r1361634 = r1361632 * r1361633;
double r1361635 = fma(r1361618, r1361618, r1361634);
double r1361636 = sqrt(r1361635);
double r1361637 = r1361636 - r1361618;
double r1361638 = r1361623 / r1361637;
double r1361639 = r1361631 / r1361638;
double r1361640 = r1361639 / r1361626;
double r1361641 = -2.0;
double r1361642 = r1361641 * r1361622;
double r1361643 = r1361642 / r1361626;
double r1361644 = r1361630 ? r1361640 : r1361643;
double r1361645 = r1361620 ? r1361628 : r1361644;
return r1361645;
}



Bits error versus a



Bits error versus b



Bits error versus c
if b < -7.397994825724217e+150Initial program 59.1
Simplified59.1
Taylor expanded around 0 59.1
Taylor expanded around -inf 2.2
Simplified2.2
if -7.397994825724217e+150 < b < 1.2158870426682226e-82Initial program 11.8
Simplified11.8
Taylor expanded around 0 11.7
rmApplied clear-num11.9
if 1.2158870426682226e-82 < b Initial program 52.3
Simplified52.3
Taylor expanded around 0 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)))