\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -3.031133968044182 \cdot 10^{+117}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - \frac{b_2}{a} \cdot 2\\
\mathbf{elif}\;b_2 \le 2.2889595342575282 \cdot 10^{-33}:\\
\;\;\;\;\frac{\sqrt{b_2 \cdot b_2 - c \cdot a} - b_2}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{c}{b_2} \cdot \frac{-1}{2}\\
\end{array}double f(double a, double b_2, double c) {
double r741223 = b_2;
double r741224 = -r741223;
double r741225 = r741223 * r741223;
double r741226 = a;
double r741227 = c;
double r741228 = r741226 * r741227;
double r741229 = r741225 - r741228;
double r741230 = sqrt(r741229);
double r741231 = r741224 + r741230;
double r741232 = r741231 / r741226;
return r741232;
}
double f(double a, double b_2, double c) {
double r741233 = b_2;
double r741234 = -3.031133968044182e+117;
bool r741235 = r741233 <= r741234;
double r741236 = 0.5;
double r741237 = c;
double r741238 = r741237 / r741233;
double r741239 = r741236 * r741238;
double r741240 = a;
double r741241 = r741233 / r741240;
double r741242 = 2.0;
double r741243 = r741241 * r741242;
double r741244 = r741239 - r741243;
double r741245 = 2.2889595342575282e-33;
bool r741246 = r741233 <= r741245;
double r741247 = r741233 * r741233;
double r741248 = r741237 * r741240;
double r741249 = r741247 - r741248;
double r741250 = sqrt(r741249);
double r741251 = r741250 - r741233;
double r741252 = r741251 / r741240;
double r741253 = -0.5;
double r741254 = r741238 * r741253;
double r741255 = r741246 ? r741252 : r741254;
double r741256 = r741235 ? r741244 : r741255;
return r741256;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -3.031133968044182e+117Initial program 48.7
Simplified48.7
Taylor expanded around -inf 2.8
if -3.031133968044182e+117 < b_2 < 2.2889595342575282e-33Initial program 14.1
Simplified14.1
Taylor expanded around inf 14.1
Simplified14.1
if 2.2889595342575282e-33 < b_2 Initial program 53.7
Simplified53.7
Taylor expanded around inf 6.9
Final simplification9.9
herbie shell --seed 2019107
(FPCore (a b_2 c)
:name "quad2p (problem 3.2.1, positive)"
(/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))