\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.0079720992890853 \cdot 10^{154}:\\
\;\;\;\;\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}{2 \cdot \frac{a \cdot c}{b} - 2 \cdot b}\\
\end{array}\\
\mathbf{elif}\;b \le 1.4702486099407425 \cdot 10^{123}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0.0:\\
\;\;\;\;\frac{\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}}}{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}\\
\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 r39066 = b;
double r39067 = 0.0;
bool r39068 = r39066 >= r39067;
double r39069 = -r39066;
double r39070 = r39066 * r39066;
double r39071 = 4.0;
double r39072 = a;
double r39073 = r39071 * r39072;
double r39074 = c;
double r39075 = r39073 * r39074;
double r39076 = r39070 - r39075;
double r39077 = sqrt(r39076);
double r39078 = r39069 - r39077;
double r39079 = 2.0;
double r39080 = r39079 * r39072;
double r39081 = r39078 / r39080;
double r39082 = r39079 * r39074;
double r39083 = r39069 + r39077;
double r39084 = r39082 / r39083;
double r39085 = r39068 ? r39081 : r39084;
return r39085;
}
double f(double a, double b, double c) {
double r39086 = b;
double r39087 = -2.0079720992890853e+154;
bool r39088 = r39086 <= r39087;
double r39089 = 0.0;
bool r39090 = r39086 >= r39089;
double r39091 = -r39086;
double r39092 = r39086 * r39086;
double r39093 = 4.0;
double r39094 = a;
double r39095 = r39093 * r39094;
double r39096 = c;
double r39097 = r39095 * r39096;
double r39098 = r39092 - r39097;
double r39099 = sqrt(r39098);
double r39100 = r39091 - r39099;
double r39101 = 2.0;
double r39102 = r39101 * r39094;
double r39103 = r39100 / r39102;
double r39104 = r39101 * r39096;
double r39105 = r39094 * r39096;
double r39106 = r39105 / r39086;
double r39107 = r39101 * r39106;
double r39108 = 2.0;
double r39109 = r39108 * r39086;
double r39110 = r39107 - r39109;
double r39111 = r39104 / r39110;
double r39112 = r39090 ? r39103 : r39111;
double r39113 = 1.4702486099407425e+123;
bool r39114 = r39086 <= r39113;
double r39115 = sqrt(r39099);
double r39116 = r39115 * r39115;
double r39117 = r39091 - r39116;
double r39118 = r39117 / r39102;
double r39119 = r39091 + r39099;
double r39120 = r39104 / r39119;
double r39121 = r39090 ? r39118 : r39120;
double r39122 = r39086 - r39107;
double r39123 = r39091 - r39122;
double r39124 = r39123 / r39102;
double r39125 = r39090 ? r39124 : r39120;
double r39126 = r39114 ? r39121 : r39125;
double r39127 = r39088 ? r39112 : r39126;
return r39127;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -2.0079720992890853e+154Initial program 38.5
Taylor expanded around -inf 7.0
if -2.0079720992890853e+154 < b < 1.4702486099407425e+123Initial program 8.4
rmApplied add-sqr-sqrt8.4
Applied sqrt-prod8.5
if 1.4702486099407425e+123 < b Initial program 53.4
Taylor expanded around inf 9.8
Final simplification8.4
herbie shell --seed 2020036
(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)))))))