\begin{array}{l}
\mathbf{if}\;b \ge 0.0:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\
\end{array}\begin{array}{l}
\mathbf{if}\;b \le -1.330037439726969607311035987454171339615 \cdot 10^{154}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0.0:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(-b\right) + \left(2 \cdot \frac{a \cdot c}{b} - b\right)}{2 \cdot a}\\
\end{array}\\
\mathbf{elif}\;b \le 1.097628284791132554247540106064701207733 \cdot 10^{94}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0.0:\\
\;\;\;\;\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}}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\
\end{array}\\
\mathbf{elif}\;b \ge 0.0:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) - \left(b - 2 \cdot \frac{a \cdot c}{b}\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\
\end{array}double f(double a, double b, double c) {
double r34082 = b;
double r34083 = 0.0;
bool r34084 = r34082 >= r34083;
double r34085 = 2.0;
double r34086 = c;
double r34087 = r34085 * r34086;
double r34088 = -r34082;
double r34089 = r34082 * r34082;
double r34090 = 4.0;
double r34091 = a;
double r34092 = r34090 * r34091;
double r34093 = r34092 * r34086;
double r34094 = r34089 - r34093;
double r34095 = sqrt(r34094);
double r34096 = r34088 - r34095;
double r34097 = r34087 / r34096;
double r34098 = r34088 + r34095;
double r34099 = r34085 * r34091;
double r34100 = r34098 / r34099;
double r34101 = r34084 ? r34097 : r34100;
return r34101;
}
double f(double a, double b, double c) {
double r34102 = b;
double r34103 = -1.3300374397269696e+154;
bool r34104 = r34102 <= r34103;
double r34105 = 0.0;
bool r34106 = r34102 >= r34105;
double r34107 = 2.0;
double r34108 = c;
double r34109 = r34107 * r34108;
double r34110 = -r34102;
double r34111 = r34102 * r34102;
double r34112 = 4.0;
double r34113 = a;
double r34114 = r34112 * r34113;
double r34115 = r34114 * r34108;
double r34116 = r34111 - r34115;
double r34117 = sqrt(r34116);
double r34118 = r34110 - r34117;
double r34119 = r34109 / r34118;
double r34120 = r34113 * r34108;
double r34121 = r34120 / r34102;
double r34122 = r34107 * r34121;
double r34123 = r34122 - r34102;
double r34124 = r34110 + r34123;
double r34125 = r34107 * r34113;
double r34126 = r34124 / r34125;
double r34127 = r34106 ? r34119 : r34126;
double r34128 = 1.0976282847911326e+94;
bool r34129 = r34102 <= r34128;
double r34130 = sqrt(r34117);
double r34131 = r34130 * r34130;
double r34132 = r34110 - r34131;
double r34133 = r34109 / r34132;
double r34134 = r34110 + r34117;
double r34135 = r34134 / r34125;
double r34136 = r34106 ? r34133 : r34135;
double r34137 = r34102 - r34122;
double r34138 = r34110 - r34137;
double r34139 = r34109 / r34138;
double r34140 = r34106 ? r34139 : r34135;
double r34141 = r34129 ? r34136 : r34140;
double r34142 = r34104 ? r34127 : r34141;
return r34142;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -1.3300374397269696e+154Initial program 64.0
Taylor expanded around -inf 11.4
if -1.3300374397269696e+154 < b < 1.0976282847911326e+94Initial program 8.7
rmApplied add-sqr-sqrt8.7
Applied sqrt-prod8.8
if 1.0976282847911326e+94 < b Initial program 29.7
Taylor expanded around inf 6.6
Final simplification8.5
herbie shell --seed 2019346 +o rules:numerics
(FPCore (a b c)
:name "jeff quadratic root 2"
:precision binary64
(if (>= b 0.0) (/ (* 2 c) (- (- b) (sqrt (- (* b b) (* (* 4 a) c))))) (/ (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a))))