\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -3.279807108380076 \cdot 10^{+121}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - \frac{b_2}{a} \cdot 2\\
\mathbf{elif}\;b_2 \le 4.6659701943749105 \cdot 10^{-84}:\\
\;\;\;\;\frac{1}{a} \cdot \left(\sqrt{b_2 \cdot b_2 - c \cdot a} - b_2\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\end{array}double f(double a, double b_2, double c) {
double r480573 = b_2;
double r480574 = -r480573;
double r480575 = r480573 * r480573;
double r480576 = a;
double r480577 = c;
double r480578 = r480576 * r480577;
double r480579 = r480575 - r480578;
double r480580 = sqrt(r480579);
double r480581 = r480574 + r480580;
double r480582 = r480581 / r480576;
return r480582;
}
double f(double a, double b_2, double c) {
double r480583 = b_2;
double r480584 = -3.279807108380076e+121;
bool r480585 = r480583 <= r480584;
double r480586 = 0.5;
double r480587 = c;
double r480588 = r480587 / r480583;
double r480589 = r480586 * r480588;
double r480590 = a;
double r480591 = r480583 / r480590;
double r480592 = 2.0;
double r480593 = r480591 * r480592;
double r480594 = r480589 - r480593;
double r480595 = 4.6659701943749105e-84;
bool r480596 = r480583 <= r480595;
double r480597 = 1.0;
double r480598 = r480597 / r480590;
double r480599 = r480583 * r480583;
double r480600 = r480587 * r480590;
double r480601 = r480599 - r480600;
double r480602 = sqrt(r480601);
double r480603 = r480602 - r480583;
double r480604 = r480598 * r480603;
double r480605 = -0.5;
double r480606 = r480605 * r480588;
double r480607 = r480596 ? r480604 : r480606;
double r480608 = r480585 ? r480594 : r480607;
return r480608;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -3.279807108380076e+121Initial program 49.8
Simplified49.8
rmApplied div-inv49.9
Taylor expanded around -inf 2.5
if -3.279807108380076e+121 < b_2 < 4.6659701943749105e-84Initial program 12.1
Simplified12.1
rmApplied div-inv12.3
rmApplied *-commutative12.3
if 4.6659701943749105e-84 < b_2 Initial program 52.1
Simplified52.1
rmApplied div-inv52.2
Taylor expanded around inf 9.2
Final simplification9.7
herbie shell --seed 2019144
(FPCore (a b_2 c)
:name "quad2p (problem 3.2.1, positive)"
(/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))