\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 -3.90700764233512764 \cdot 10^{103}:\\
\;\;\;\;\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 2.276690291884487 \cdot 10^{80}:\\
\;\;\;\;\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{\left(-b\right) - \left(b - 2 \cdot \frac{a \cdot c}{b}\right)}{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 r34919 = b;
double r34920 = 0.0;
bool r34921 = r34919 >= r34920;
double r34922 = -r34919;
double r34923 = r34919 * r34919;
double r34924 = 4.0;
double r34925 = a;
double r34926 = r34924 * r34925;
double r34927 = c;
double r34928 = r34926 * r34927;
double r34929 = r34923 - r34928;
double r34930 = sqrt(r34929);
double r34931 = r34922 - r34930;
double r34932 = 2.0;
double r34933 = r34932 * r34925;
double r34934 = r34931 / r34933;
double r34935 = r34932 * r34927;
double r34936 = r34922 + r34930;
double r34937 = r34935 / r34936;
double r34938 = r34921 ? r34934 : r34937;
return r34938;
}
double f(double a, double b, double c) {
double r34939 = b;
double r34940 = -3.907007642335128e+103;
bool r34941 = r34939 <= r34940;
double r34942 = 0.0;
bool r34943 = r34939 >= r34942;
double r34944 = -r34939;
double r34945 = r34939 * r34939;
double r34946 = 4.0;
double r34947 = a;
double r34948 = r34946 * r34947;
double r34949 = c;
double r34950 = r34948 * r34949;
double r34951 = r34945 - r34950;
double r34952 = sqrt(r34951);
double r34953 = r34944 - r34952;
double r34954 = 2.0;
double r34955 = r34954 * r34947;
double r34956 = r34953 / r34955;
double r34957 = r34954 * r34949;
double r34958 = r34947 * r34949;
double r34959 = r34958 / r34939;
double r34960 = r34954 * r34959;
double r34961 = r34960 - r34939;
double r34962 = r34944 + r34961;
double r34963 = r34957 / r34962;
double r34964 = r34943 ? r34956 : r34963;
double r34965 = 2.2766902918844874e+80;
bool r34966 = r34939 <= r34965;
double r34967 = sqrt(r34952);
double r34968 = r34967 * r34967;
double r34969 = r34944 + r34968;
double r34970 = r34957 / r34969;
double r34971 = r34943 ? r34956 : r34970;
double r34972 = r34939 - r34960;
double r34973 = r34944 - r34972;
double r34974 = r34973 / r34955;
double r34975 = r34944 + r34952;
double r34976 = r34957 / r34975;
double r34977 = r34943 ? r34974 : r34976;
double r34978 = r34966 ? r34971 : r34977;
double r34979 = r34941 ? r34964 : r34978;
return r34979;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -3.907007642335128e+103Initial program 31.3
Taylor expanded around -inf 6.4
if -3.907007642335128e+103 < b < 2.2766902918844874e+80Initial program 8.7
rmApplied add-sqr-sqrt8.7
Applied sqrt-prod8.8
if 2.2766902918844874e+80 < b Initial program 44.4
Taylor expanded around inf 11.0
Final simplification8.6
herbie shell --seed 2019199
(FPCore (a b c)
:name "jeff quadratic root 1"
(if (>= b 0.0) (/ (- (- b) (sqrt (- (* b b) (* (* 4.0 a) c)))) (* 2.0 a)) (/ (* 2.0 c) (+ (- b) (sqrt (- (* b b) (* (* 4.0 a) c)))))))