\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -5.300564053552496 \cdot 10^{+135}:\\
\;\;\;\;\mathsf{fma}\left(\frac{b_2}{a}, -2, \frac{\frac{1}{2} \cdot c}{b_2}\right)\\
\mathbf{elif}\;b_2 \le 3.318234109021414 \cdot 10^{-122}:\\
\;\;\;\;\left(\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2\right) \cdot \frac{1}{a}\\
\mathbf{elif}\;b_2 \le 13471615.147294592:\\
\;\;\;\;\frac{\frac{\mathsf{fma}\left(c, -a, 0\right)}{b_2 + \sqrt{b_2 \cdot b_2 - a \cdot c}}}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\end{array}double f(double a, double b_2, double c) {
double r758536 = b_2;
double r758537 = -r758536;
double r758538 = r758536 * r758536;
double r758539 = a;
double r758540 = c;
double r758541 = r758539 * r758540;
double r758542 = r758538 - r758541;
double r758543 = sqrt(r758542);
double r758544 = r758537 + r758543;
double r758545 = r758544 / r758539;
return r758545;
}
double f(double a, double b_2, double c) {
double r758546 = b_2;
double r758547 = -5.300564053552496e+135;
bool r758548 = r758546 <= r758547;
double r758549 = a;
double r758550 = r758546 / r758549;
double r758551 = -2.0;
double r758552 = 0.5;
double r758553 = c;
double r758554 = r758552 * r758553;
double r758555 = r758554 / r758546;
double r758556 = fma(r758550, r758551, r758555);
double r758557 = 3.318234109021414e-122;
bool r758558 = r758546 <= r758557;
double r758559 = r758546 * r758546;
double r758560 = r758549 * r758553;
double r758561 = r758559 - r758560;
double r758562 = sqrt(r758561);
double r758563 = r758562 - r758546;
double r758564 = 1.0;
double r758565 = r758564 / r758549;
double r758566 = r758563 * r758565;
double r758567 = 13471615.147294592;
bool r758568 = r758546 <= r758567;
double r758569 = -r758549;
double r758570 = 0.0;
double r758571 = fma(r758553, r758569, r758570);
double r758572 = r758546 + r758562;
double r758573 = r758571 / r758572;
double r758574 = r758573 / r758549;
double r758575 = -0.5;
double r758576 = r758553 / r758546;
double r758577 = r758575 * r758576;
double r758578 = r758568 ? r758574 : r758577;
double r758579 = r758558 ? r758566 : r758578;
double r758580 = r758548 ? r758556 : r758579;
return r758580;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
if b_2 < -5.300564053552496e+135Initial program 54.8
Simplified54.8
rmApplied div-inv54.8
Taylor expanded around -inf 2.4
Simplified2.4
if -5.300564053552496e+135 < b_2 < 3.318234109021414e-122Initial program 11.9
Simplified11.9
rmApplied div-inv12.0
if 3.318234109021414e-122 < b_2 < 13471615.147294592Initial program 33.7
Simplified33.7
rmApplied add-exp-log36.1
rmApplied flip--36.2
Applied log-div36.2
Applied exp-diff36.3
Simplified18.4
Simplified15.7
if 13471615.147294592 < b_2 Initial program 55.0
Simplified55.0
Taylor expanded around inf 5.4
Final simplification9.0
herbie shell --seed 2019163 +o rules:numerics
(FPCore (a b_2 c)
:name "quad2p (problem 3.2.1, positive)"
(/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))