\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -1.6581383089037873 \cdot 10^{81}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\
\mathbf{elif}\;b_2 \le 2.45811587950602871 \cdot 10^{-136}:\\
\;\;\;\;\left(\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}\right) \cdot \frac{1}{a}\\
\mathbf{elif}\;b_2 \le 4.40565710546396028 \cdot 10^{-70}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le 1.1310446734884525 \cdot 10^{-47}:\\
\;\;\;\;\frac{\frac{a \cdot c}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}}{a}\\
\mathbf{elif}\;b_2 \le 4.75875355528826554 \cdot 10^{78}:\\
\;\;\;\;\frac{a \cdot c}{a \cdot \left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\end{array}double f(double a, double b_2, double c) {
double r26270 = b_2;
double r26271 = -r26270;
double r26272 = r26270 * r26270;
double r26273 = a;
double r26274 = c;
double r26275 = r26273 * r26274;
double r26276 = r26272 - r26275;
double r26277 = sqrt(r26276);
double r26278 = r26271 + r26277;
double r26279 = r26278 / r26273;
return r26279;
}
double f(double a, double b_2, double c) {
double r26280 = b_2;
double r26281 = -1.6581383089037873e+81;
bool r26282 = r26280 <= r26281;
double r26283 = 0.5;
double r26284 = c;
double r26285 = r26284 / r26280;
double r26286 = r26283 * r26285;
double r26287 = 2.0;
double r26288 = a;
double r26289 = r26280 / r26288;
double r26290 = r26287 * r26289;
double r26291 = r26286 - r26290;
double r26292 = 2.4581158795060287e-136;
bool r26293 = r26280 <= r26292;
double r26294 = -r26280;
double r26295 = r26280 * r26280;
double r26296 = r26288 * r26284;
double r26297 = r26295 - r26296;
double r26298 = sqrt(r26297);
double r26299 = r26294 + r26298;
double r26300 = 1.0;
double r26301 = r26300 / r26288;
double r26302 = r26299 * r26301;
double r26303 = 4.40565710546396e-70;
bool r26304 = r26280 <= r26303;
double r26305 = -0.5;
double r26306 = r26305 * r26285;
double r26307 = 1.1310446734884525e-47;
bool r26308 = r26280 <= r26307;
double r26309 = r26294 - r26298;
double r26310 = r26296 / r26309;
double r26311 = r26310 / r26288;
double r26312 = 4.7587535552882655e+78;
bool r26313 = r26280 <= r26312;
double r26314 = r26288 * r26309;
double r26315 = r26296 / r26314;
double r26316 = r26313 ? r26315 : r26306;
double r26317 = r26308 ? r26311 : r26316;
double r26318 = r26304 ? r26306 : r26317;
double r26319 = r26293 ? r26302 : r26318;
double r26320 = r26282 ? r26291 : r26319;
return r26320;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -1.6581383089037873e+81Initial program 43.9
Taylor expanded around -inf 3.7
if -1.6581383089037873e+81 < b_2 < 2.4581158795060287e-136Initial program 11.6
rmApplied div-inv11.7
if 2.4581158795060287e-136 < b_2 < 4.40565710546396e-70 or 4.7587535552882655e+78 < b_2 Initial program 53.8
Taylor expanded around inf 9.1
if 4.40565710546396e-70 < b_2 < 1.1310446734884525e-47Initial program 31.8
rmApplied flip-+31.9
Simplified13.4
if 1.1310446734884525e-47 < b_2 < 4.7587535552882655e+78Initial program 45.7
rmApplied flip-+45.7
Simplified14.4
rmApplied div-inv14.5
Applied associate-/l*15.2
Simplified15.1
Final simplification9.9
herbie shell --seed 2019199
(FPCore (a b_2 c)
:name "quad2p (problem 3.2.1, positive)"
(/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))