\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -9.332433396832084322962138528577137922234 \cdot 10^{-58}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le 2.875629862348269923009864799258754597338 \cdot 10^{107}:\\
\;\;\;\;\frac{\mathsf{fma}\left(\sqrt[3]{-b_2} \cdot \sqrt[3]{-b_2}, \sqrt[3]{-b_2}, -\sqrt{b_2 \cdot b_2 - c \cdot a}\right)}{a}\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\frac{c}{b_2}, \frac{1}{2}, \frac{-2 \cdot b_2}{a}\right)\\
\end{array}double f(double a, double b_2, double c) {
double r2988520 = b_2;
double r2988521 = -r2988520;
double r2988522 = r2988520 * r2988520;
double r2988523 = a;
double r2988524 = c;
double r2988525 = r2988523 * r2988524;
double r2988526 = r2988522 - r2988525;
double r2988527 = sqrt(r2988526);
double r2988528 = r2988521 - r2988527;
double r2988529 = r2988528 / r2988523;
return r2988529;
}
double f(double a, double b_2, double c) {
double r2988530 = b_2;
double r2988531 = -9.332433396832084e-58;
bool r2988532 = r2988530 <= r2988531;
double r2988533 = -0.5;
double r2988534 = c;
double r2988535 = r2988534 / r2988530;
double r2988536 = r2988533 * r2988535;
double r2988537 = 2.87562986234827e+107;
bool r2988538 = r2988530 <= r2988537;
double r2988539 = -r2988530;
double r2988540 = cbrt(r2988539);
double r2988541 = r2988540 * r2988540;
double r2988542 = r2988530 * r2988530;
double r2988543 = a;
double r2988544 = r2988534 * r2988543;
double r2988545 = r2988542 - r2988544;
double r2988546 = sqrt(r2988545);
double r2988547 = -r2988546;
double r2988548 = fma(r2988541, r2988540, r2988547);
double r2988549 = r2988548 / r2988543;
double r2988550 = 0.5;
double r2988551 = -2.0;
double r2988552 = r2988551 * r2988530;
double r2988553 = r2988552 / r2988543;
double r2988554 = fma(r2988535, r2988550, r2988553);
double r2988555 = r2988538 ? r2988549 : r2988554;
double r2988556 = r2988532 ? r2988536 : r2988555;
return r2988556;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
if b_2 < -9.332433396832084e-58Initial program 53.5
Taylor expanded around -inf 8.7
if -9.332433396832084e-58 < b_2 < 2.87562986234827e+107Initial program 14.0
rmApplied add-cube-cbrt14.2
Applied fma-neg14.2
if 2.87562986234827e+107 < b_2 Initial program 49.0
Taylor expanded around inf 3.4
Simplified3.5
Final simplification10.6
herbie shell --seed 2019171 +o rules:numerics
(FPCore (a b_2 c)
:name "NMSE problem 3.2.1"
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))