\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 -4.6218828469248316 \cdot 10^{82}:\\
\;\;\;\;\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 b}\\
\end{array}\\
\mathbf{elif}\;b \le 2.276690291884487 \cdot 10^{80}:\\
\;\;\;\;\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}{\mathsf{fma}\left(\sqrt{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}, \sqrt{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}, -b\right)}\\
\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}{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} - b}\\
\end{array}double f(double a, double b, double c) {
double r40450 = b;
double r40451 = 0.0;
bool r40452 = r40450 >= r40451;
double r40453 = -r40450;
double r40454 = r40450 * r40450;
double r40455 = 4.0;
double r40456 = a;
double r40457 = r40455 * r40456;
double r40458 = c;
double r40459 = r40457 * r40458;
double r40460 = r40454 - r40459;
double r40461 = sqrt(r40460);
double r40462 = r40453 - r40461;
double r40463 = 2.0;
double r40464 = r40463 * r40456;
double r40465 = r40462 / r40464;
double r40466 = r40463 * r40458;
double r40467 = r40453 + r40461;
double r40468 = r40466 / r40467;
double r40469 = r40452 ? r40465 : r40468;
return r40469;
}
double f(double a, double b, double c) {
double r40470 = b;
double r40471 = -4.6218828469248316e+82;
bool r40472 = r40470 <= r40471;
double r40473 = 0.0;
bool r40474 = r40470 >= r40473;
double r40475 = -r40470;
double r40476 = r40470 * r40470;
double r40477 = 4.0;
double r40478 = a;
double r40479 = r40477 * r40478;
double r40480 = c;
double r40481 = r40479 * r40480;
double r40482 = r40476 - r40481;
double r40483 = sqrt(r40482);
double r40484 = r40475 - r40483;
double r40485 = 2.0;
double r40486 = r40485 * r40478;
double r40487 = r40484 / r40486;
double r40488 = r40485 * r40480;
double r40489 = -2.0;
double r40490 = r40489 * r40470;
double r40491 = r40488 / r40490;
double r40492 = r40474 ? r40487 : r40491;
double r40493 = 2.2766902918844874e+80;
bool r40494 = r40470 <= r40493;
double r40495 = sqrt(r40483);
double r40496 = fma(r40495, r40495, r40475);
double r40497 = r40488 / r40496;
double r40498 = r40474 ? r40487 : r40497;
double r40499 = r40478 * r40480;
double r40500 = r40499 / r40470;
double r40501 = r40485 * r40500;
double r40502 = r40470 - r40501;
double r40503 = r40475 - r40502;
double r40504 = r40503 / r40486;
double r40505 = r40483 - r40470;
double r40506 = r40488 / r40505;
double r40507 = r40474 ? r40504 : r40506;
double r40508 = r40494 ? r40498 : r40507;
double r40509 = r40472 ? r40492 : r40508;
return r40509;
}



Bits error versus a



Bits error versus b



Bits error versus c
if b < -4.6218828469248316e+82Initial program 29.0
Simplified29.0
rmApplied add-sqr-sqrt29.0
Applied sqrt-prod29.1
Applied fma-neg29.0
Taylor expanded around -inf 2.7
Simplified2.7
if -4.6218828469248316e+82 < b < 2.2766902918844874e+80Initial program 8.9
Simplified8.9
rmApplied add-sqr-sqrt8.9
Applied sqrt-prod9.0
Applied fma-neg9.0
if 2.2766902918844874e+80 < b Initial program 44.4
Simplified44.4
Taylor expanded around inf 11.0
Final simplification7.7
herbie shell --seed 2019199 +o rules:numerics
(FPCore (a b c)
:name "jeff quadratic root 1"
(if (>= b 0.0) (/ (- (- b) (sqrt (- (* b b) (* (* 4.0 a) c)))) (* 2.0 a)) (/ (* 2.0 c) (+ (- b) (sqrt (- (* b b) (* (* 4.0 a) c)))))))