\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -1.569310777886352095486911207889814773134 \cdot 10^{111}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\
\mathbf{elif}\;b_2 \le \frac{-8820186483094019}{2.808895523222368605827039360607851146278 \cdot 10^{306}}:\\
\;\;\;\;\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\
\mathbf{elif}\;b_2 \le 1.608284405260305560018146283533738265178 \cdot 10^{78}:\\
\;\;\;\;\frac{\frac{1}{a} \cdot 0 + 1 \cdot c}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{c}{b_2}}{-2}\\
\end{array}double f(double a, double b_2, double c) {
double r22577 = b_2;
double r22578 = -r22577;
double r22579 = r22577 * r22577;
double r22580 = a;
double r22581 = c;
double r22582 = r22580 * r22581;
double r22583 = r22579 - r22582;
double r22584 = sqrt(r22583);
double r22585 = r22578 + r22584;
double r22586 = r22585 / r22580;
return r22586;
}
double f(double a, double b_2, double c) {
double r22587 = b_2;
double r22588 = -1.569310777886352e+111;
bool r22589 = r22587 <= r22588;
double r22590 = 1.0;
double r22591 = 2.0;
double r22592 = r22590 / r22591;
double r22593 = c;
double r22594 = r22593 / r22587;
double r22595 = r22592 * r22594;
double r22596 = a;
double r22597 = r22587 / r22596;
double r22598 = r22591 * r22597;
double r22599 = r22595 - r22598;
double r22600 = -8820186483094019.0;
double r22601 = 2.8088955232223686e+306;
double r22602 = r22600 / r22601;
bool r22603 = r22587 <= r22602;
double r22604 = -r22587;
double r22605 = r22587 * r22587;
double r22606 = r22596 * r22593;
double r22607 = r22605 - r22606;
double r22608 = sqrt(r22607);
double r22609 = r22604 + r22608;
double r22610 = r22609 / r22596;
double r22611 = 1.6082844052603056e+78;
bool r22612 = r22587 <= r22611;
double r22613 = r22590 / r22596;
double r22614 = 0.0;
double r22615 = r22613 * r22614;
double r22616 = r22590 * r22593;
double r22617 = r22615 + r22616;
double r22618 = r22604 - r22608;
double r22619 = r22617 / r22618;
double r22620 = -2.0;
double r22621 = r22594 / r22620;
double r22622 = r22612 ? r22619 : r22621;
double r22623 = r22603 ? r22610 : r22622;
double r22624 = r22589 ? r22599 : r22623;
return r22624;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -1.569310777886352e+111Initial program 50.4
Taylor expanded around -inf 3.8
Simplified3.8
if -1.569310777886352e+111 < b_2 < -3.1400906193105714e-291Initial program 8.4
if -3.1400906193105714e-291 < b_2 < 1.6082844052603056e+78Initial program 30.6
rmApplied div-inv30.7
rmApplied flip-+30.7
Applied associate-*l/30.8
Simplified15.8
rmApplied associate-*r*9.1
Simplified9.0
if 1.6082844052603056e+78 < b_2 Initial program 58.7
Taylor expanded around inf 3.2
Simplified3.2
Final simplification6.5
herbie shell --seed 2019303
(FPCore (a b_2 c)
:name "quad2p (problem 3.2.1, positive)"
:precision binary64
(/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))