\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -128467017418558619648:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\
\mathbf{elif}\;b_2 \le -3.43876958772637578815854414301947050583 \cdot 10^{-134}:\\
\;\;\;\;\frac{\frac{a \cdot c}{\frac{a \cdot c}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}}{a}\\
\mathbf{elif}\;b_2 \le 6.190496209585126281868131365991188760623 \cdot 10^{153}:\\
\;\;\;\;\frac{c}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}\\
\mathbf{else}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\end{array}double f(double a, double b_2, double c) {
double r25254 = b_2;
double r25255 = -r25254;
double r25256 = r25254 * r25254;
double r25257 = a;
double r25258 = c;
double r25259 = r25257 * r25258;
double r25260 = r25256 - r25259;
double r25261 = sqrt(r25260);
double r25262 = r25255 + r25261;
double r25263 = r25262 / r25257;
return r25263;
}
double f(double a, double b_2, double c) {
double r25264 = b_2;
double r25265 = -1.2846701741855862e+20;
bool r25266 = r25264 <= r25265;
double r25267 = 0.5;
double r25268 = c;
double r25269 = r25268 / r25264;
double r25270 = r25267 * r25269;
double r25271 = 2.0;
double r25272 = a;
double r25273 = r25264 / r25272;
double r25274 = r25271 * r25273;
double r25275 = r25270 - r25274;
double r25276 = -3.438769587726376e-134;
bool r25277 = r25264 <= r25276;
double r25278 = r25272 * r25268;
double r25279 = r25264 * r25264;
double r25280 = r25279 - r25278;
double r25281 = sqrt(r25280);
double r25282 = r25281 - r25264;
double r25283 = r25278 / r25282;
double r25284 = r25278 / r25283;
double r25285 = r25284 / r25272;
double r25286 = 6.190496209585126e+153;
bool r25287 = r25264 <= r25286;
double r25288 = -r25264;
double r25289 = r25288 - r25281;
double r25290 = r25268 / r25289;
double r25291 = -0.5;
double r25292 = r25291 * r25269;
double r25293 = r25287 ? r25290 : r25292;
double r25294 = r25277 ? r25285 : r25293;
double r25295 = r25266 ? r25275 : r25294;
return r25295;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -1.2846701741855862e+20Initial program 34.5
Taylor expanded around -inf 6.0
if -1.2846701741855862e+20 < b_2 < -3.438769587726376e-134Initial program 4.7
rmApplied flip-+37.0
Simplified37.1
rmApplied flip--37.1
Simplified16.0
Simplified16.0
if -3.438769587726376e-134 < b_2 < 6.190496209585126e+153Initial program 30.2
rmApplied flip-+31.1
Simplified16.9
rmApplied *-un-lft-identity16.9
Applied *-un-lft-identity16.9
Applied times-frac16.9
Simplified16.9
Simplified10.5
if 6.190496209585126e+153 < b_2 Initial program 64.0
Taylor expanded around inf 1.5
Final simplification8.5
herbie shell --seed 2019325
(FPCore (a b_2 c)
:name "quad2p (problem 3.2.1, positive)"
:precision binary64
(/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))