\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.680329042988888396603264581948851078331 \cdot 10^{148}:\\
\;\;\;\;\left(\frac{c}{b} - \frac{b}{a}\right) \cdot 1\\
\mathbf{elif}\;b \le 4.612990823111230552052602417245542305295 \cdot 10^{-104}:\\
\;\;\;\;\left(\sqrt{\mathsf{fma}\left(b, b, \left(-c\right) \cdot \left(4 \cdot a\right)\right)} - b\right) \cdot \frac{1}{a \cdot 2}\\
\mathbf{else}:\\
\;\;\;\;\frac{c}{b} \cdot -1\\
\end{array}double f(double a, double b, double c) {
double r2518024 = b;
double r2518025 = -r2518024;
double r2518026 = r2518024 * r2518024;
double r2518027 = 4.0;
double r2518028 = a;
double r2518029 = r2518027 * r2518028;
double r2518030 = c;
double r2518031 = r2518029 * r2518030;
double r2518032 = r2518026 - r2518031;
double r2518033 = sqrt(r2518032);
double r2518034 = r2518025 + r2518033;
double r2518035 = 2.0;
double r2518036 = r2518035 * r2518028;
double r2518037 = r2518034 / r2518036;
return r2518037;
}
double f(double a, double b, double c) {
double r2518038 = b;
double r2518039 = -3.6803290429888884e+148;
bool r2518040 = r2518038 <= r2518039;
double r2518041 = c;
double r2518042 = r2518041 / r2518038;
double r2518043 = a;
double r2518044 = r2518038 / r2518043;
double r2518045 = r2518042 - r2518044;
double r2518046 = 1.0;
double r2518047 = r2518045 * r2518046;
double r2518048 = 4.6129908231112306e-104;
bool r2518049 = r2518038 <= r2518048;
double r2518050 = -r2518041;
double r2518051 = 4.0;
double r2518052 = r2518051 * r2518043;
double r2518053 = r2518050 * r2518052;
double r2518054 = fma(r2518038, r2518038, r2518053);
double r2518055 = sqrt(r2518054);
double r2518056 = r2518055 - r2518038;
double r2518057 = 1.0;
double r2518058 = 2.0;
double r2518059 = r2518043 * r2518058;
double r2518060 = r2518057 / r2518059;
double r2518061 = r2518056 * r2518060;
double r2518062 = -1.0;
double r2518063 = r2518042 * r2518062;
double r2518064 = r2518049 ? r2518061 : r2518063;
double r2518065 = r2518040 ? r2518047 : r2518064;
return r2518065;
}



Bits error versus a



Bits error versus b



Bits error versus c
if b < -3.6803290429888884e+148Initial program 62.1
Taylor expanded around -inf 2.3
Simplified2.3
if -3.6803290429888884e+148 < b < 4.6129908231112306e-104Initial program 12.2
rmApplied clear-num12.3
Simplified12.3
rmApplied fma-neg12.3
rmApplied associate-/r/12.3
if 4.6129908231112306e-104 < b Initial program 52.7
Taylor expanded around inf 9.8
Final simplification10.1
herbie shell --seed 2019170 +o rules:numerics
(FPCore (a b c)
:name "Quadratic roots, full range"
(/ (+ (- b) (sqrt (- (* b b) (* (* 4.0 a) c)))) (* 2.0 a)))