\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.3307746224770355 \cdot 10^{+154}:\\
\;\;\;\;\frac{\frac{\left(\frac{a}{b} \cdot c - b\right) \cdot 2}{a}}{2}\\
\mathbf{elif}\;b \le 1.502588793204478 \cdot 10^{-55}:\\
\;\;\;\;\frac{\frac{\sqrt{\mathsf{fma}\left(b, b, a \cdot \left(-4 \cdot c\right)\right)} - b}{a}}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{c \cdot a}{b} \cdot -2}{a}}{2}\\
\end{array}double f(double a, double b, double c) {
double r820110 = b;
double r820111 = -r820110;
double r820112 = r820110 * r820110;
double r820113 = 4.0;
double r820114 = a;
double r820115 = r820113 * r820114;
double r820116 = c;
double r820117 = r820115 * r820116;
double r820118 = r820112 - r820117;
double r820119 = sqrt(r820118);
double r820120 = r820111 + r820119;
double r820121 = 2.0;
double r820122 = r820121 * r820114;
double r820123 = r820120 / r820122;
return r820123;
}
double f(double a, double b, double c) {
double r820124 = b;
double r820125 = -1.3307746224770355e+154;
bool r820126 = r820124 <= r820125;
double r820127 = a;
double r820128 = r820127 / r820124;
double r820129 = c;
double r820130 = r820128 * r820129;
double r820131 = r820130 - r820124;
double r820132 = 2.0;
double r820133 = r820131 * r820132;
double r820134 = r820133 / r820127;
double r820135 = r820134 / r820132;
double r820136 = 1.502588793204478e-55;
bool r820137 = r820124 <= r820136;
double r820138 = -4.0;
double r820139 = r820138 * r820129;
double r820140 = r820127 * r820139;
double r820141 = fma(r820124, r820124, r820140);
double r820142 = sqrt(r820141);
double r820143 = r820142 - r820124;
double r820144 = r820143 / r820127;
double r820145 = r820144 / r820132;
double r820146 = r820129 * r820127;
double r820147 = r820146 / r820124;
double r820148 = -2.0;
double r820149 = r820147 * r820148;
double r820150 = r820149 / r820127;
double r820151 = r820150 / r820132;
double r820152 = r820137 ? r820145 : r820151;
double r820153 = r820126 ? r820135 : r820152;
return r820153;
}



Bits error versus a



Bits error versus b



Bits error versus c
if b < -1.3307746224770355e+154Initial program 60.9
Simplified60.9
rmApplied associate-*l*60.9
Taylor expanded around -inf 9.8
Simplified2.0
if -1.3307746224770355e+154 < b < 1.502588793204478e-55Initial program 12.7
Simplified12.7
rmApplied associate-*l*12.7
if 1.502588793204478e-55 < b Initial program 52.9
Simplified52.9
Taylor expanded around inf 18.8
Final simplification13.8
herbie shell --seed 2019155 +o rules:numerics
(FPCore (a b c)
:name "Quadratic roots, full range"
(/ (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)))