\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -3.12428337420519208 \cdot 10^{57}:\\
\;\;\;\;\frac{-2 \cdot b_2}{a}\\
\mathbf{elif}\;b_2 \le 3.84613441880260993 \cdot 10^{-81}:\\
\;\;\;\;\frac{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\end{array}double f(double a, double b_2, double c) {
double r15719 = b_2;
double r15720 = -r15719;
double r15721 = r15719 * r15719;
double r15722 = a;
double r15723 = c;
double r15724 = r15722 * r15723;
double r15725 = r15721 - r15724;
double r15726 = sqrt(r15725);
double r15727 = r15720 + r15726;
double r15728 = r15727 / r15722;
return r15728;
}
double f(double a, double b_2, double c) {
double r15729 = b_2;
double r15730 = -3.124283374205192e+57;
bool r15731 = r15729 <= r15730;
double r15732 = -2.0;
double r15733 = r15732 * r15729;
double r15734 = a;
double r15735 = r15733 / r15734;
double r15736 = 3.84613441880261e-81;
bool r15737 = r15729 <= r15736;
double r15738 = r15729 * r15729;
double r15739 = c;
double r15740 = r15734 * r15739;
double r15741 = r15738 - r15740;
double r15742 = sqrt(r15741);
double r15743 = r15742 - r15729;
double r15744 = r15743 / r15734;
double r15745 = -0.5;
double r15746 = r15739 / r15729;
double r15747 = r15745 * r15746;
double r15748 = r15737 ? r15744 : r15747;
double r15749 = r15731 ? r15735 : r15748;
return r15749;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -3.124283374205192e+57Initial program 39.4
Simplified39.4
rmApplied div-inv39.5
rmApplied pow139.5
Applied pow139.5
Applied pow-prod-down39.5
Simplified39.4
rmApplied add-cube-cbrt39.6
Applied sqrt-prod39.6
Applied fma-neg39.6
Taylor expanded around -inf 5.6
Simplified5.6
if -3.124283374205192e+57 < b_2 < 3.84613441880261e-81Initial program 12.7
Simplified12.7
rmApplied div-inv12.8
rmApplied pow112.8
Applied pow112.8
Applied pow-prod-down12.8
Simplified12.7
if 3.84613441880261e-81 < b_2 Initial program 52.9
Simplified52.9
rmApplied div-inv52.9
rmApplied pow152.9
Applied pow152.9
Applied pow-prod-down52.9
Simplified52.9
Taylor expanded around inf 9.5
Final simplification10.1
herbie shell --seed 2020045 +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))