\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.3202538172935113 \cdot 10^{68}:\\
\;\;\;\;\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) + \left(2 \cdot \left(a \cdot \frac{c}{b}\right) - b\right)}\\
\end{array}\\
\mathbf{elif}\;b \le 3.67086091268017442 \cdot 10^{125}:\\
\;\;\;\;\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{\left(\sqrt[3]{b \cdot b - \left(4 \cdot a\right) \cdot c} \cdot \sqrt[3]{b \cdot b - \left(4 \cdot a\right) \cdot c}\right) \cdot \sqrt[3]{b \cdot b - \left(4 \cdot a\right) \cdot c}}}\\
\end{array}\\
\mathbf{elif}\;b \ge 0.0:\\
\;\;\;\;\frac{2 \cdot \frac{a \cdot c}{b} - 2 \cdot b}{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 r29314 = b;
double r29315 = 0.0;
bool r29316 = r29314 >= r29315;
double r29317 = -r29314;
double r29318 = r29314 * r29314;
double r29319 = 4.0;
double r29320 = a;
double r29321 = r29319 * r29320;
double r29322 = c;
double r29323 = r29321 * r29322;
double r29324 = r29318 - r29323;
double r29325 = sqrt(r29324);
double r29326 = r29317 - r29325;
double r29327 = 2.0;
double r29328 = r29327 * r29320;
double r29329 = r29326 / r29328;
double r29330 = r29327 * r29322;
double r29331 = r29317 + r29325;
double r29332 = r29330 / r29331;
double r29333 = r29316 ? r29329 : r29332;
return r29333;
}
double f(double a, double b, double c) {
double r29334 = b;
double r29335 = -2.3202538172935113e+68;
bool r29336 = r29334 <= r29335;
double r29337 = 0.0;
bool r29338 = r29334 >= r29337;
double r29339 = -r29334;
double r29340 = r29334 * r29334;
double r29341 = 4.0;
double r29342 = a;
double r29343 = r29341 * r29342;
double r29344 = c;
double r29345 = r29343 * r29344;
double r29346 = r29340 - r29345;
double r29347 = sqrt(r29346);
double r29348 = r29339 - r29347;
double r29349 = 2.0;
double r29350 = r29349 * r29342;
double r29351 = r29348 / r29350;
double r29352 = r29349 * r29344;
double r29353 = r29344 / r29334;
double r29354 = r29342 * r29353;
double r29355 = r29349 * r29354;
double r29356 = r29355 - r29334;
double r29357 = r29339 + r29356;
double r29358 = r29352 / r29357;
double r29359 = r29338 ? r29351 : r29358;
double r29360 = 3.6708609126801744e+125;
bool r29361 = r29334 <= r29360;
double r29362 = cbrt(r29346);
double r29363 = r29362 * r29362;
double r29364 = r29363 * r29362;
double r29365 = sqrt(r29364);
double r29366 = r29339 + r29365;
double r29367 = r29352 / r29366;
double r29368 = r29338 ? r29351 : r29367;
double r29369 = r29342 * r29344;
double r29370 = r29369 / r29334;
double r29371 = r29349 * r29370;
double r29372 = 2.0;
double r29373 = r29372 * r29334;
double r29374 = r29371 - r29373;
double r29375 = r29374 / r29350;
double r29376 = r29339 + r29347;
double r29377 = r29352 / r29376;
double r29378 = r29338 ? r29375 : r29377;
double r29379 = r29361 ? r29368 : r29378;
double r29380 = r29336 ? r29359 : r29379;
return r29380;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -2.3202538172935113e+68Initial program 26.1
Taylor expanded around -inf 7.3
rmApplied *-un-lft-identity7.3
Applied times-frac3.6
Simplified3.6
if -2.3202538172935113e+68 < b < 3.6708609126801744e+125Initial program 9.2
rmApplied add-cube-cbrt9.4
if 3.6708609126801744e+125 < b Initial program 53.5
rmApplied add-sqr-sqrt53.5
Applied sqrt-prod53.6
Taylor expanded around inf 9.5
Final simplification7.9
herbie shell --seed 2020083
(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)))))))