\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -7.664666030704839304934680918144560500037 \cdot 10^{-132}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\
\mathbf{elif}\;b_2 \le 2.626711303971800850284673478773070197477 \cdot 10^{73}:\\
\;\;\;\;\frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{\left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right) \cdot \frac{1}{\sqrt[3]{a} \cdot \sqrt[3]{a}}} \cdot \left(\frac{\frac{\sqrt[3]{1}}{\frac{\frac{1}{\sqrt[3]{\sqrt[3]{a}} \cdot \sqrt[3]{\sqrt[3]{a}}}}{1}}}{\sqrt[3]{\sqrt[3]{a}} \cdot \sqrt[3]{\sqrt[3]{a}}} \cdot \frac{\frac{\sqrt[3]{1}}{\frac{\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{\sqrt[3]{\sqrt[3]{a}}}}{c}}}{\sqrt[3]{\sqrt[3]{a}}}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\end{array}double f(double a, double b_2, double c) {
double r156386 = b_2;
double r156387 = -r156386;
double r156388 = r156386 * r156386;
double r156389 = a;
double r156390 = c;
double r156391 = r156389 * r156390;
double r156392 = r156388 - r156391;
double r156393 = sqrt(r156392);
double r156394 = r156387 + r156393;
double r156395 = r156394 / r156389;
return r156395;
}
double f(double a, double b_2, double c) {
double r156396 = b_2;
double r156397 = -7.664666030704839e-132;
bool r156398 = r156396 <= r156397;
double r156399 = 0.5;
double r156400 = c;
double r156401 = r156400 / r156396;
double r156402 = r156399 * r156401;
double r156403 = 2.0;
double r156404 = a;
double r156405 = r156396 / r156404;
double r156406 = r156403 * r156405;
double r156407 = r156402 - r156406;
double r156408 = 2.626711303971801e+73;
bool r156409 = r156396 <= r156408;
double r156410 = 1.0;
double r156411 = cbrt(r156410);
double r156412 = r156411 * r156411;
double r156413 = cbrt(r156404);
double r156414 = r156413 * r156413;
double r156415 = r156410 / r156414;
double r156416 = r156414 * r156415;
double r156417 = r156412 / r156416;
double r156418 = cbrt(r156413);
double r156419 = r156418 * r156418;
double r156420 = r156410 / r156419;
double r156421 = r156420 / r156410;
double r156422 = r156411 / r156421;
double r156423 = r156422 / r156419;
double r156424 = -r156396;
double r156425 = r156396 * r156396;
double r156426 = r156404 * r156400;
double r156427 = r156425 - r156426;
double r156428 = sqrt(r156427);
double r156429 = r156424 - r156428;
double r156430 = r156429 / r156418;
double r156431 = r156430 / r156400;
double r156432 = r156411 / r156431;
double r156433 = r156432 / r156418;
double r156434 = r156423 * r156433;
double r156435 = r156417 * r156434;
double r156436 = -0.5;
double r156437 = r156436 * r156401;
double r156438 = r156409 ? r156435 : r156437;
double r156439 = r156398 ? r156407 : r156438;
return r156439;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -7.664666030704839e-132Initial program 24.4
Taylor expanded around -inf 14.0
if -7.664666030704839e-132 < b_2 < 2.626711303971801e+73Initial program 26.1
rmApplied flip-+26.9
Simplified16.5
rmApplied clear-num16.7
Simplified15.3
rmApplied add-cube-cbrt16.0
Applied *-un-lft-identity16.0
Applied add-cube-cbrt15.3
Applied *-un-lft-identity15.3
Applied times-frac15.4
Applied times-frac15.1
Applied add-cube-cbrt15.1
Applied times-frac14.8
Applied times-frac12.5
Simplified12.5
rmApplied add-cube-cbrt13.2
Applied *-un-lft-identity13.2
Applied add-cube-cbrt12.5
Applied *-un-lft-identity12.5
Applied times-frac12.6
Applied times-frac12.6
Applied *-un-lft-identity12.6
Applied cbrt-prod12.6
Applied times-frac12.4
Applied times-frac12.0
if 2.626711303971801e+73 < b_2 Initial program 57.9
Taylor expanded around inf 3.7
Final simplification10.5
herbie shell --seed 2019322
(FPCore (a b_2 c)
:name "quad2p (problem 3.2.1, positive)"
:precision binary64
(/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))