\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 2.399747870429879 \cdot 10^{-86}:\\
\;\;\;\;\frac{\sqrt{\mathsf{fma}\left(\left(c \cdot -4\right), a, \left(b \cdot b\right)\right)} - b}{a} \cdot \frac{1}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{\left(c \cdot -4\right) \cdot a}{\left(b + \sqrt{\mathsf{fma}\left(\left(c \cdot -4\right), a, \left(b \cdot b\right)\right)}\right) \cdot a}\\
\end{array}double f(double a, double b, double c) {
double r7192825 = b;
double r7192826 = -r7192825;
double r7192827 = r7192825 * r7192825;
double r7192828 = 4.0;
double r7192829 = a;
double r7192830 = r7192828 * r7192829;
double r7192831 = c;
double r7192832 = r7192830 * r7192831;
double r7192833 = r7192827 - r7192832;
double r7192834 = sqrt(r7192833);
double r7192835 = r7192826 + r7192834;
double r7192836 = 2.0;
double r7192837 = r7192836 * r7192829;
double r7192838 = r7192835 / r7192837;
return r7192838;
}
double f(double a, double b, double c) {
double r7192839 = b;
double r7192840 = 2.399747870429879e-86;
bool r7192841 = r7192839 <= r7192840;
double r7192842 = c;
double r7192843 = -4.0;
double r7192844 = r7192842 * r7192843;
double r7192845 = a;
double r7192846 = r7192839 * r7192839;
double r7192847 = fma(r7192844, r7192845, r7192846);
double r7192848 = sqrt(r7192847);
double r7192849 = r7192848 - r7192839;
double r7192850 = r7192849 / r7192845;
double r7192851 = 0.5;
double r7192852 = r7192850 * r7192851;
double r7192853 = r7192844 * r7192845;
double r7192854 = r7192839 + r7192848;
double r7192855 = r7192854 * r7192845;
double r7192856 = r7192853 / r7192855;
double r7192857 = r7192851 * r7192856;
double r7192858 = r7192841 ? r7192852 : r7192857;
return r7192858;
}



Bits error versus a



Bits error versus b



Bits error versus c
if b < 2.399747870429879e-86Initial program 20.0
Simplified20.0
rmApplied *-un-lft-identity20.0
Applied associate-/l*20.1
rmApplied associate-/r/20.1
Applied add-cube-cbrt20.1
Applied times-frac20.1
Simplified19.9
Simplified19.9
if 2.399747870429879e-86 < b Initial program 52.1
Simplified52.2
rmApplied *-un-lft-identity52.2
Applied associate-/l*52.2
rmApplied associate-/r/52.2
Applied add-cube-cbrt52.2
Applied times-frac52.2
Simplified52.2
Simplified52.2
rmApplied flip--52.2
Applied associate-/l/53.4
Simplified25.2
Final simplification22.1
herbie shell --seed 2019124 +o rules:numerics
(FPCore (a b c)
:name "Quadratic roots, full range"
(/ (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)))