\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 -3.063397748446981 \cdot 10^{+71}:\\
\;\;\;\;\frac{\left(\frac{c}{b} - \frac{b}{a}\right) \cdot 2}{2}\\
\mathbf{elif}\;b \le 3.1295384133612364 \cdot 10^{-73}:\\
\;\;\;\;\frac{\frac{1}{a} \cdot \left(\sqrt{\mathsf{fma}\left(b, b, \left(a \cdot -4\right) \cdot c\right)} - b\right)}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{-2 \cdot \frac{c}{b}}{2}\\
\end{array}double f(double a, double b, double c) {
double r1334189 = b;
double r1334190 = -r1334189;
double r1334191 = r1334189 * r1334189;
double r1334192 = 4.0;
double r1334193 = a;
double r1334194 = r1334192 * r1334193;
double r1334195 = c;
double r1334196 = r1334194 * r1334195;
double r1334197 = r1334191 - r1334196;
double r1334198 = sqrt(r1334197);
double r1334199 = r1334190 + r1334198;
double r1334200 = 2.0;
double r1334201 = r1334200 * r1334193;
double r1334202 = r1334199 / r1334201;
return r1334202;
}
double f(double a, double b, double c) {
double r1334203 = b;
double r1334204 = -3.063397748446981e+71;
bool r1334205 = r1334203 <= r1334204;
double r1334206 = c;
double r1334207 = r1334206 / r1334203;
double r1334208 = a;
double r1334209 = r1334203 / r1334208;
double r1334210 = r1334207 - r1334209;
double r1334211 = 2.0;
double r1334212 = r1334210 * r1334211;
double r1334213 = r1334212 / r1334211;
double r1334214 = 3.1295384133612364e-73;
bool r1334215 = r1334203 <= r1334214;
double r1334216 = 1.0;
double r1334217 = r1334216 / r1334208;
double r1334218 = -4.0;
double r1334219 = r1334208 * r1334218;
double r1334220 = r1334219 * r1334206;
double r1334221 = fma(r1334203, r1334203, r1334220);
double r1334222 = sqrt(r1334221);
double r1334223 = r1334222 - r1334203;
double r1334224 = r1334217 * r1334223;
double r1334225 = r1334224 / r1334211;
double r1334226 = -2.0;
double r1334227 = r1334226 * r1334207;
double r1334228 = r1334227 / r1334211;
double r1334229 = r1334215 ? r1334225 : r1334228;
double r1334230 = r1334205 ? r1334213 : r1334229;
return r1334230;
}



Bits error versus a



Bits error versus b



Bits error versus c
if b < -3.063397748446981e+71Initial program 38.6
Simplified38.6
Taylor expanded around -inf 4.7
Simplified4.7
if -3.063397748446981e+71 < b < 3.1295384133612364e-73Initial program 13.0
Simplified13.0
rmApplied div-inv13.2
if 3.1295384133612364e-73 < b Initial program 52.3
Simplified52.3
Taylor expanded around inf 9.0
Final simplification10.0
herbie shell --seed 2019152 +o rules:numerics
(FPCore (a b c)
:name "Quadratic roots, full range"
(/ (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)))