\begin{array}{l}
\mathbf{if}\;b \ge 0.0:\\
\;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\
\mathbf{else}:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\
\end{array}\begin{array}{l}
\mathbf{if}\;b \le -2.87308952039439872 \cdot 10^{136}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0.0:\\
\;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\
\mathbf{else}:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \left(2 \cdot \frac{a \cdot c}{b} - b\right)}\\
\end{array}\\
\mathbf{elif}\;b \le 1.28779386821729373 \cdot 10^{92}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0.0:\\
\;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\
\mathbf{else}:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \sqrt{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}} \cdot \sqrt{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}}\\
\end{array}\\
\mathbf{elif}\;b \ge 0.0:\\
\;\;\;\;\frac{2 \cdot \frac{a \cdot c}{b} - 2 \cdot b}{2 \cdot a}\\
\mathbf{else}:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\
\end{array}double f(double a, double b, double c) {
double r49854 = b;
double r49855 = 0.0;
bool r49856 = r49854 >= r49855;
double r49857 = -r49854;
double r49858 = r49854 * r49854;
double r49859 = 4.0;
double r49860 = a;
double r49861 = r49859 * r49860;
double r49862 = c;
double r49863 = r49861 * r49862;
double r49864 = r49858 - r49863;
double r49865 = sqrt(r49864);
double r49866 = r49857 - r49865;
double r49867 = 2.0;
double r49868 = r49867 * r49860;
double r49869 = r49866 / r49868;
double r49870 = r49867 * r49862;
double r49871 = r49857 + r49865;
double r49872 = r49870 / r49871;
double r49873 = r49856 ? r49869 : r49872;
return r49873;
}
double f(double a, double b, double c) {
double r49874 = b;
double r49875 = -2.8730895203943987e+136;
bool r49876 = r49874 <= r49875;
double r49877 = 0.0;
bool r49878 = r49874 >= r49877;
double r49879 = -r49874;
double r49880 = r49874 * r49874;
double r49881 = 4.0;
double r49882 = a;
double r49883 = r49881 * r49882;
double r49884 = c;
double r49885 = r49883 * r49884;
double r49886 = r49880 - r49885;
double r49887 = sqrt(r49886);
double r49888 = r49879 - r49887;
double r49889 = 2.0;
double r49890 = r49889 * r49882;
double r49891 = r49888 / r49890;
double r49892 = r49889 * r49884;
double r49893 = r49882 * r49884;
double r49894 = r49893 / r49874;
double r49895 = r49889 * r49894;
double r49896 = r49895 - r49874;
double r49897 = r49879 + r49896;
double r49898 = r49892 / r49897;
double r49899 = r49878 ? r49891 : r49898;
double r49900 = 1.2877938682172937e+92;
bool r49901 = r49874 <= r49900;
double r49902 = sqrt(r49887);
double r49903 = r49902 * r49902;
double r49904 = r49879 + r49903;
double r49905 = r49892 / r49904;
double r49906 = r49878 ? r49891 : r49905;
double r49907 = 2.0;
double r49908 = r49907 * r49874;
double r49909 = r49895 - r49908;
double r49910 = r49909 / r49890;
double r49911 = r49879 + r49887;
double r49912 = r49892 / r49911;
double r49913 = r49878 ? r49910 : r49912;
double r49914 = r49901 ? r49906 : r49913;
double r49915 = r49876 ? r49899 : r49914;
return r49915;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -2.8730895203943987e+136Initial program 34.5
Taylor expanded around -inf 6.4
if -2.8730895203943987e+136 < b < 1.2877938682172937e+92Initial program 8.8
rmApplied add-sqr-sqrt8.8
Applied sqrt-prod8.9
if 1.2877938682172937e+92 < b Initial program 45.5
Taylor expanded around inf 10.2
Final simplification8.7
herbie shell --seed 2020035
(FPCore (a b c)
:name "jeff quadratic root 1"
:precision binary64
(if (>= b 0.0) (/ (- (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (/ (* 2 c) (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))))))