\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.340309450716145752013307588659221163014 \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(2 \cdot \frac{a \cdot c}{b} - b\right) + \left(-b\right)}{2 \cdot a}\\
\end{array}\\
\mathbf{elif}\;b \le 1.87934071350375634734658439345944082339 \cdot 10^{153}:\\
\;\;\;\;\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{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} + \left(-b\right)}{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{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} + \left(-b\right)}{2 \cdot a}\\
\end{array}double f(double a, double b, double c) {
double r799258 = b;
double r799259 = 0.0;
bool r799260 = r799258 >= r799259;
double r799261 = 2.0;
double r799262 = c;
double r799263 = r799261 * r799262;
double r799264 = -r799258;
double r799265 = r799258 * r799258;
double r799266 = 4.0;
double r799267 = a;
double r799268 = r799266 * r799267;
double r799269 = r799268 * r799262;
double r799270 = r799265 - r799269;
double r799271 = sqrt(r799270);
double r799272 = r799264 - r799271;
double r799273 = r799263 / r799272;
double r799274 = r799264 + r799271;
double r799275 = r799261 * r799267;
double r799276 = r799274 / r799275;
double r799277 = r799260 ? r799273 : r799276;
return r799277;
}
double f(double a, double b, double c) {
double r799278 = b;
double r799279 = -1.3403094507161458e+154;
bool r799280 = r799278 <= r799279;
double r799281 = 0.0;
bool r799282 = r799278 >= r799281;
double r799283 = 2.0;
double r799284 = c;
double r799285 = r799283 * r799284;
double r799286 = -r799278;
double r799287 = r799278 * r799278;
double r799288 = 4.0;
double r799289 = a;
double r799290 = r799288 * r799289;
double r799291 = r799290 * r799284;
double r799292 = r799287 - r799291;
double r799293 = sqrt(r799292);
double r799294 = r799286 - r799293;
double r799295 = r799285 / r799294;
double r799296 = r799289 * r799284;
double r799297 = r799296 / r799278;
double r799298 = r799283 * r799297;
double r799299 = r799298 - r799278;
double r799300 = r799299 + r799286;
double r799301 = r799283 * r799289;
double r799302 = r799300 / r799301;
double r799303 = r799282 ? r799295 : r799302;
double r799304 = 1.8793407135037563e+153;
bool r799305 = r799278 <= r799304;
double r799306 = sqrt(r799293);
double r799307 = r799306 * r799306;
double r799308 = r799286 - r799307;
double r799309 = r799285 / r799308;
double r799310 = r799293 + r799286;
double r799311 = r799310 / r799301;
double r799312 = r799282 ? r799309 : r799311;
double r799313 = r799278 - r799298;
double r799314 = r799286 - r799313;
double r799315 = r799285 / r799314;
double r799316 = r799282 ? r799315 : r799311;
double r799317 = r799305 ? r799312 : r799316;
double r799318 = r799280 ? r799303 : r799317;
return r799318;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -1.3403094507161458e+154Initial program 64.0
Taylor expanded around -inf 10.7
if -1.3403094507161458e+154 < b < 1.8793407135037563e+153Initial program 9.0
rmApplied add-sqr-sqrt9.0
Applied sqrt-prod9.1
if 1.8793407135037563e+153 < b Initial program 38.4
Taylor expanded around inf 6.5
Final simplification8.8
herbie shell --seed 2019171
(FPCore (a b c)
:name "jeff quadratic root 2"
(if (>= b 0.0) (/ (* 2.0 c) (- (- b) (sqrt (- (* b b) (* (* 4.0 a) c))))) (/ (+ (- b) (sqrt (- (* b b) (* (* 4.0 a) c)))) (* 2.0 a))))