\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -8.28610472349374 \cdot 10^{+140}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - \frac{b_2}{a} \cdot 2\\
\mathbf{elif}\;b_2 \le 1.4081708088564908 \cdot 10^{-288}:\\
\;\;\;\;\frac{1}{\frac{a}{\sqrt{b_2 \cdot b_2 - c \cdot a} - b_2}}\\
\mathbf{elif}\;b_2 \le 6.523631550102089 \cdot 10^{+89}:\\
\;\;\;\;c \cdot \frac{-1}{\sqrt{b_2 \cdot b_2 - c \cdot a} + b_2}\\
\mathbf{else}:\\
\;\;\;\;\frac{c}{b_2} \cdot \frac{-1}{2}\\
\end{array}double f(double a, double b_2, double c) {
double r1517264 = b_2;
double r1517265 = -r1517264;
double r1517266 = r1517264 * r1517264;
double r1517267 = a;
double r1517268 = c;
double r1517269 = r1517267 * r1517268;
double r1517270 = r1517266 - r1517269;
double r1517271 = sqrt(r1517270);
double r1517272 = r1517265 + r1517271;
double r1517273 = r1517272 / r1517267;
return r1517273;
}
double f(double a, double b_2, double c) {
double r1517274 = b_2;
double r1517275 = -8.28610472349374e+140;
bool r1517276 = r1517274 <= r1517275;
double r1517277 = 0.5;
double r1517278 = c;
double r1517279 = r1517278 / r1517274;
double r1517280 = r1517277 * r1517279;
double r1517281 = a;
double r1517282 = r1517274 / r1517281;
double r1517283 = 2.0;
double r1517284 = r1517282 * r1517283;
double r1517285 = r1517280 - r1517284;
double r1517286 = 1.4081708088564908e-288;
bool r1517287 = r1517274 <= r1517286;
double r1517288 = 1.0;
double r1517289 = r1517274 * r1517274;
double r1517290 = r1517278 * r1517281;
double r1517291 = r1517289 - r1517290;
double r1517292 = sqrt(r1517291);
double r1517293 = r1517292 - r1517274;
double r1517294 = r1517281 / r1517293;
double r1517295 = r1517288 / r1517294;
double r1517296 = 6.523631550102089e+89;
bool r1517297 = r1517274 <= r1517296;
double r1517298 = -1.0;
double r1517299 = r1517292 + r1517274;
double r1517300 = r1517298 / r1517299;
double r1517301 = r1517278 * r1517300;
double r1517302 = -0.5;
double r1517303 = r1517279 * r1517302;
double r1517304 = r1517297 ? r1517301 : r1517303;
double r1517305 = r1517287 ? r1517295 : r1517304;
double r1517306 = r1517276 ? r1517285 : r1517305;
return r1517306;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -8.28610472349374e+140Initial program 55.8
Simplified55.8
Taylor expanded around -inf 1.6
if -8.28610472349374e+140 < b_2 < 1.4081708088564908e-288Initial program 8.7
Simplified8.7
Taylor expanded around inf 8.7
Simplified8.7
rmApplied *-un-lft-identity8.7
Applied *-un-lft-identity8.7
Applied distribute-lft-out--8.7
Applied associate-/l*8.9
if 1.4081708088564908e-288 < b_2 < 6.523631550102089e+89Initial program 32.8
Simplified32.8
Taylor expanded around inf 32.8
Simplified32.8
rmApplied *-un-lft-identity32.8
Applied *-un-lft-identity32.8
Applied distribute-lft-out--32.8
Applied associate-/l*32.8
rmApplied flip--32.9
Applied associate-/r/33.0
Applied add-cube-cbrt33.0
Applied times-frac33.0
Simplified16.3
Simplified16.3
Taylor expanded around 0 9.2
Simplified9.2
if 6.523631550102089e+89 < b_2 Initial program 58.7
Simplified58.7
Taylor expanded around inf 2.6
Final simplification6.6
herbie shell --seed 2019112
(FPCore (a b_2 c)
:name "quad2p (problem 3.2.1, positive)"
(/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))