\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 -3.2137442760107994 \cdot 10^{+97}:\\
\;\;\;\;\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 1.9280516389664611 \cdot 10^{+37}:\\
\;\;\;\;\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{\left(\frac{a}{\frac{b}{c}} - b\right) \cdot 2}{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 r563957 = b;
double r563958 = 0.0;
bool r563959 = r563957 >= r563958;
double r563960 = -r563957;
double r563961 = r563957 * r563957;
double r563962 = 4.0;
double r563963 = a;
double r563964 = r563962 * r563963;
double r563965 = c;
double r563966 = r563964 * r563965;
double r563967 = r563961 - r563966;
double r563968 = sqrt(r563967);
double r563969 = r563960 - r563968;
double r563970 = 2.0;
double r563971 = r563970 * r563963;
double r563972 = r563969 / r563971;
double r563973 = r563970 * r563965;
double r563974 = r563960 + r563968;
double r563975 = r563973 / r563974;
double r563976 = r563959 ? r563972 : r563975;
return r563976;
}
double f(double a, double b, double c) {
double r563977 = b;
double r563978 = -3.2137442760107994e+97;
bool r563979 = r563977 <= r563978;
double r563980 = 0.0;
bool r563981 = r563977 >= r563980;
double r563982 = -r563977;
double r563983 = r563977 * r563977;
double r563984 = 4.0;
double r563985 = a;
double r563986 = r563984 * r563985;
double r563987 = c;
double r563988 = r563986 * r563987;
double r563989 = r563983 - r563988;
double r563990 = sqrt(r563989);
double r563991 = r563982 - r563990;
double r563992 = 2.0;
double r563993 = r563992 * r563985;
double r563994 = r563991 / r563993;
double r563995 = r563987 * r563992;
double r563996 = r563985 * r563987;
double r563997 = r563996 / r563977;
double r563998 = r563997 - r563977;
double r563999 = r563992 * r563998;
double r564000 = r563995 / r563999;
double r564001 = r563981 ? r563994 : r564000;
double r564002 = 1.9280516389664611e+37;
bool r564003 = r563977 <= r564002;
double r564004 = sqrt(r563990);
double r564005 = r564004 * r564004;
double r564006 = r563982 + r564005;
double r564007 = r563995 / r564006;
double r564008 = r563981 ? r563994 : r564007;
double r564009 = r563977 / r563987;
double r564010 = r563985 / r564009;
double r564011 = r564010 - r563977;
double r564012 = r564011 * r563992;
double r564013 = r564012 / r563993;
double r564014 = r563990 + r563982;
double r564015 = r563995 / r564014;
double r564016 = r563981 ? r564013 : r564015;
double r564017 = r564003 ? r564008 : r564016;
double r564018 = r563979 ? r564001 : r564017;
return r564018;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -3.2137442760107994e+97Initial program 30.2
rmApplied add-sqr-sqrt30.2
Applied sqrt-prod30.2
Taylor expanded around -inf 6.6
Simplified6.6
if -3.2137442760107994e+97 < b < 1.9280516389664611e+37Initial program 9.0
rmApplied add-sqr-sqrt9.0
Applied sqrt-prod9.1
if 1.9280516389664611e+37 < b Initial program 33.2
Taylor expanded around inf 11.2
Simplified6.8
Final simplification8.0
herbie shell --seed 2019149
(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)))))))