\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -9.348931433494438 \cdot 10^{+39}:\\
\;\;\;\;\mathsf{fma}\left(\frac{b_2}{a}, -2, \frac{\frac{1}{2} \cdot c}{b_2}\right)\\
\mathbf{elif}\;b_2 \le 1.3353078790738604 \cdot 10^{-121}:\\
\;\;\;\;\frac{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}{a}\\
\mathbf{elif}\;b_2 \le 1.6168702840263923 \cdot 10^{-79}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le 1.546013236023957 \cdot 10^{-67}:\\
\;\;\;\;\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 r737066 = b_2;
double r737067 = -r737066;
double r737068 = r737066 * r737066;
double r737069 = a;
double r737070 = c;
double r737071 = r737069 * r737070;
double r737072 = r737068 - r737071;
double r737073 = sqrt(r737072);
double r737074 = r737067 + r737073;
double r737075 = r737074 / r737069;
return r737075;
}
double f(double a, double b_2, double c) {
double r737076 = b_2;
double r737077 = -9.348931433494438e+39;
bool r737078 = r737076 <= r737077;
double r737079 = a;
double r737080 = r737076 / r737079;
double r737081 = -2.0;
double r737082 = 0.5;
double r737083 = c;
double r737084 = r737082 * r737083;
double r737085 = r737084 / r737076;
double r737086 = fma(r737080, r737081, r737085);
double r737087 = 1.3353078790738604e-121;
bool r737088 = r737076 <= r737087;
double r737089 = r737076 * r737076;
double r737090 = r737079 * r737083;
double r737091 = r737089 - r737090;
double r737092 = sqrt(r737091);
double r737093 = r737092 - r737076;
double r737094 = r737093 / r737079;
double r737095 = 1.6168702840263923e-79;
bool r737096 = r737076 <= r737095;
double r737097 = -0.5;
double r737098 = r737083 / r737076;
double r737099 = r737097 * r737098;
double r737100 = 1.546013236023957e-67;
bool r737101 = r737076 <= r737100;
double r737102 = r737101 ? r737094 : r737099;
double r737103 = r737096 ? r737099 : r737102;
double r737104 = r737088 ? r737094 : r737103;
double r737105 = r737078 ? r737086 : r737104;
return r737105;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
if b_2 < -9.348931433494438e+39Initial program 34.0
Simplified34.0
Taylor expanded around -inf 6.2
Simplified6.2
if -9.348931433494438e+39 < b_2 < 1.3353078790738604e-121 or 1.6168702840263923e-79 < b_2 < 1.546013236023957e-67Initial program 12.8
Simplified12.8
rmApplied div-inv13.0
rmApplied un-div-inv12.8
if 1.3353078790738604e-121 < b_2 < 1.6168702840263923e-79 or 1.546013236023957e-67 < b_2 Initial program 50.8
Simplified50.8
Taylor expanded around inf 11.2
Final simplification10.8
herbie shell --seed 2019158 +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))