\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -6.371698442415157100029538982618411822116 \cdot 10^{150}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\
\mathbf{elif}\;b_2 \le -5.331911540015065182156270674462636313069 \cdot 10^{-301}:\\
\;\;\;\;\frac{1}{\frac{a}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}\\
\mathbf{elif}\;b_2 \le 1.493919351930657503244813394241198531074 \cdot 10^{-69}:\\
\;\;\;\;\frac{\frac{1}{\frac{\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}}{c}}}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\end{array}double f(double a, double b_2, double c) {
double r32596 = b_2;
double r32597 = -r32596;
double r32598 = r32596 * r32596;
double r32599 = a;
double r32600 = c;
double r32601 = r32599 * r32600;
double r32602 = r32598 - r32601;
double r32603 = sqrt(r32602);
double r32604 = r32597 + r32603;
double r32605 = r32604 / r32599;
return r32605;
}
double f(double a, double b_2, double c) {
double r32606 = b_2;
double r32607 = -6.371698442415157e+150;
bool r32608 = r32606 <= r32607;
double r32609 = 0.5;
double r32610 = c;
double r32611 = r32610 / r32606;
double r32612 = r32609 * r32611;
double r32613 = 2.0;
double r32614 = a;
double r32615 = r32606 / r32614;
double r32616 = r32613 * r32615;
double r32617 = r32612 - r32616;
double r32618 = -5.331911540015065e-301;
bool r32619 = r32606 <= r32618;
double r32620 = 1.0;
double r32621 = r32606 * r32606;
double r32622 = r32614 * r32610;
double r32623 = r32621 - r32622;
double r32624 = sqrt(r32623);
double r32625 = r32624 - r32606;
double r32626 = r32614 / r32625;
double r32627 = r32620 / r32626;
double r32628 = 1.4939193519306575e-69;
bool r32629 = r32606 <= r32628;
double r32630 = -r32606;
double r32631 = r32630 - r32624;
double r32632 = r32631 / r32614;
double r32633 = r32632 / r32610;
double r32634 = r32620 / r32633;
double r32635 = r32634 / r32614;
double r32636 = -0.5;
double r32637 = r32636 * r32611;
double r32638 = r32629 ? r32635 : r32637;
double r32639 = r32619 ? r32627 : r32638;
double r32640 = r32608 ? r32617 : r32639;
return r32640;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -6.371698442415157e+150Initial program 63.0
Taylor expanded around -inf 2.5
if -6.371698442415157e+150 < b_2 < -5.331911540015065e-301Initial program 9.0
rmApplied clear-num9.1
Simplified9.1
if -5.331911540015065e-301 < b_2 < 1.4939193519306575e-69Initial program 21.6
rmApplied flip-+21.7
Simplified18.1
rmApplied clear-num18.2
Simplified14.6
if 1.4939193519306575e-69 < b_2 Initial program 53.7
Taylor expanded around inf 9.5
Final simplification9.3
herbie shell --seed 2019344 +o rules:numerics
(FPCore (a b_2 c)
:name "quad2p (problem 3.2.1, positive)"
:precision binary64
(/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))