\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -0.03099989563658142946445117615894560003653:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le 5.992812285264992608677553115821113751089 \cdot 10^{-289}:\\
\;\;\;\;\frac{\frac{c \cdot a}{\sqrt{b_2 \cdot b_2 - c \cdot a} - b_2}}{a}\\
\mathbf{elif}\;b_2 \le 63580190853209333432320:\\
\;\;\;\;\frac{\mathsf{fma}\left(\left(-\sqrt[3]{b_2}\right) \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{b_2}{a}, -2, \frac{\frac{1}{2}}{\frac{b_2}{c}}\right)\\
\end{array}double f(double a, double b_2, double c) {
double r720410 = b_2;
double r720411 = -r720410;
double r720412 = r720410 * r720410;
double r720413 = a;
double r720414 = c;
double r720415 = r720413 * r720414;
double r720416 = r720412 - r720415;
double r720417 = sqrt(r720416);
double r720418 = r720411 - r720417;
double r720419 = r720418 / r720413;
return r720419;
}
double f(double a, double b_2, double c) {
double r720420 = b_2;
double r720421 = -0.03099989563658143;
bool r720422 = r720420 <= r720421;
double r720423 = -0.5;
double r720424 = c;
double r720425 = r720424 / r720420;
double r720426 = r720423 * r720425;
double r720427 = 5.992812285264993e-289;
bool r720428 = r720420 <= r720427;
double r720429 = a;
double r720430 = r720424 * r720429;
double r720431 = r720420 * r720420;
double r720432 = r720431 - r720430;
double r720433 = sqrt(r720432);
double r720434 = r720433 - r720420;
double r720435 = r720430 / r720434;
double r720436 = r720435 / r720429;
double r720437 = 6.358019085320933e+22;
bool r720438 = r720420 <= r720437;
double r720439 = cbrt(r720420);
double r720440 = -r720439;
double r720441 = r720440 * r720439;
double r720442 = -r720433;
double r720443 = fma(r720441, r720439, r720442);
double r720444 = r720443 / r720429;
double r720445 = r720420 / r720429;
double r720446 = -2.0;
double r720447 = 0.5;
double r720448 = r720420 / r720424;
double r720449 = r720447 / r720448;
double r720450 = fma(r720445, r720446, r720449);
double r720451 = r720438 ? r720444 : r720450;
double r720452 = r720428 ? r720436 : r720451;
double r720453 = r720422 ? r720426 : r720452;
return r720453;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
if b_2 < -0.03099989563658143Initial program 55.6
Taylor expanded around -inf 6.4
if -0.03099989563658143 < b_2 < 5.992812285264993e-289Initial program 24.4
rmApplied flip--24.4
Simplified16.6
Simplified16.6
if 5.992812285264993e-289 < b_2 < 6.358019085320933e+22Initial program 10.0
rmApplied add-cube-cbrt10.3
Applied distribute-lft-neg-in10.3
Applied fma-neg10.3
if 6.358019085320933e+22 < b_2 Initial program 33.1
Taylor expanded around inf 6.1
Simplified6.1
Final simplification9.4
herbie shell --seed 2019192 +o rules:numerics
(FPCore (a b_2 c)
:name "quad2m (problem 3.2.1, negative)"
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))