\begin{array}{l}
\mathbf{if}\;b \ge 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 -5.748232111683622 \cdot 10^{+41}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0:\\
\;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\
\mathbf{else}:\\
\;\;\;\;\frac{c \cdot 2}{2 \cdot \left(\frac{a \cdot c}{b} - b\right)}\\
\end{array}\\
\mathbf{elif}\;b \le 5.9445047311226904 \cdot 10^{+140}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0:\\
\;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\
\mathbf{else}:\\
\;\;\;\;\frac{c \cdot 2}{\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:\\
\;\;\;\;\frac{2 \cdot \left(\frac{a \cdot c}{b} - b\right)}{2 \cdot a}\\
\mathbf{else}:\\
\;\;\;\;\frac{c \cdot 2}{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} + \left(-b\right)}\\
\end{array}double f(double a, double b, double c) {
double r1076961 = b;
double r1076962 = 0.0;
bool r1076963 = r1076961 >= r1076962;
double r1076964 = -r1076961;
double r1076965 = r1076961 * r1076961;
double r1076966 = 4.0;
double r1076967 = a;
double r1076968 = r1076966 * r1076967;
double r1076969 = c;
double r1076970 = r1076968 * r1076969;
double r1076971 = r1076965 - r1076970;
double r1076972 = sqrt(r1076971);
double r1076973 = r1076964 - r1076972;
double r1076974 = 2.0;
double r1076975 = r1076974 * r1076967;
double r1076976 = r1076973 / r1076975;
double r1076977 = r1076974 * r1076969;
double r1076978 = r1076964 + r1076972;
double r1076979 = r1076977 / r1076978;
double r1076980 = r1076963 ? r1076976 : r1076979;
return r1076980;
}
double f(double a, double b, double c) {
double r1076981 = b;
double r1076982 = -5.748232111683622e+41;
bool r1076983 = r1076981 <= r1076982;
double r1076984 = 0.0;
bool r1076985 = r1076981 >= r1076984;
double r1076986 = -r1076981;
double r1076987 = r1076981 * r1076981;
double r1076988 = 4.0;
double r1076989 = a;
double r1076990 = r1076988 * r1076989;
double r1076991 = c;
double r1076992 = r1076990 * r1076991;
double r1076993 = r1076987 - r1076992;
double r1076994 = sqrt(r1076993);
double r1076995 = r1076986 - r1076994;
double r1076996 = 2.0;
double r1076997 = r1076996 * r1076989;
double r1076998 = r1076995 / r1076997;
double r1076999 = r1076991 * r1076996;
double r1077000 = r1076989 * r1076991;
double r1077001 = r1077000 / r1076981;
double r1077002 = r1077001 - r1076981;
double r1077003 = r1076996 * r1077002;
double r1077004 = r1076999 / r1077003;
double r1077005 = r1076985 ? r1076998 : r1077004;
double r1077006 = 5.9445047311226904e+140;
bool r1077007 = r1076981 <= r1077006;
double r1077008 = sqrt(r1076994);
double r1077009 = r1077008 * r1077008;
double r1077010 = r1076986 + r1077009;
double r1077011 = r1076999 / r1077010;
double r1077012 = r1076985 ? r1076998 : r1077011;
double r1077013 = r1077003 / r1076997;
double r1077014 = r1076994 + r1076986;
double r1077015 = r1076999 / r1077014;
double r1077016 = r1076985 ? r1077013 : r1077015;
double r1077017 = r1077007 ? r1077012 : r1077016;
double r1077018 = r1076983 ? r1077005 : r1077017;
return r1077018;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -5.748232111683622e+41Initial program 24.8
rmApplied add-sqr-sqrt24.8
Applied sqrt-prod24.8
Taylor expanded around -inf 7.5
Simplified7.5
if -5.748232111683622e+41 < b < 5.9445047311226904e+140Initial program 9.0
rmApplied add-sqr-sqrt9.0
Applied sqrt-prod9.1
if 5.9445047311226904e+140 < b Initial program 56.1
Taylor expanded around inf 10.6
Simplified10.6
Final simplification8.8
herbie shell --seed 2019164
(FPCore (a b c)
:name "jeff quadratic root 1"
(if (>= b 0) (/ (- (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (/ (* 2 c) (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))))))