\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -5.10985616674947893 \cdot 10^{57}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le -2.57120366754749 \cdot 10^{-295}:\\
\;\;\;\;\frac{\frac{\mathsf{fma}\left(c, a, 0\right)}{a}}{\sqrt{{b_2}^{2} - a \cdot c} - b_2}\\
\mathbf{elif}\;b_2 \le 2.09453346119227227 \cdot 10^{90}:\\
\;\;\;\;\left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right) \cdot \frac{1}{a}\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\frac{c}{b_2}, \frac{1}{2}, \frac{b_2}{a} \cdot -2\right)\\
\end{array}double f(double a, double b_2, double c) {
double r70352 = b_2;
double r70353 = -r70352;
double r70354 = r70352 * r70352;
double r70355 = a;
double r70356 = c;
double r70357 = r70355 * r70356;
double r70358 = r70354 - r70357;
double r70359 = sqrt(r70358);
double r70360 = r70353 - r70359;
double r70361 = r70360 / r70355;
return r70361;
}
double f(double a, double b_2, double c) {
double r70362 = b_2;
double r70363 = -5.109856166749479e+57;
bool r70364 = r70362 <= r70363;
double r70365 = -0.5;
double r70366 = c;
double r70367 = r70366 / r70362;
double r70368 = r70365 * r70367;
double r70369 = -2.57120366754749e-295;
bool r70370 = r70362 <= r70369;
double r70371 = a;
double r70372 = 0.0;
double r70373 = fma(r70366, r70371, r70372);
double r70374 = r70373 / r70371;
double r70375 = 2.0;
double r70376 = pow(r70362, r70375);
double r70377 = r70371 * r70366;
double r70378 = r70376 - r70377;
double r70379 = sqrt(r70378);
double r70380 = r70379 - r70362;
double r70381 = r70374 / r70380;
double r70382 = 2.0945334611922723e+90;
bool r70383 = r70362 <= r70382;
double r70384 = -r70362;
double r70385 = r70362 * r70362;
double r70386 = r70385 - r70377;
double r70387 = sqrt(r70386);
double r70388 = r70384 - r70387;
double r70389 = 1.0;
double r70390 = r70389 / r70371;
double r70391 = r70388 * r70390;
double r70392 = 0.5;
double r70393 = r70362 / r70371;
double r70394 = -2.0;
double r70395 = r70393 * r70394;
double r70396 = fma(r70367, r70392, r70395);
double r70397 = r70383 ? r70391 : r70396;
double r70398 = r70370 ? r70381 : r70397;
double r70399 = r70364 ? r70368 : r70398;
return r70399;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
if b_2 < -5.109856166749479e+57Initial program 58.1
Taylor expanded around -inf 3.4
if -5.109856166749479e+57 < b_2 < -2.57120366754749e-295Initial program 30.9
rmApplied flip--31.0
Simplified17.1
Simplified17.1
rmApplied div-inv17.1
Applied associate-/l*22.4
Simplified22.4
rmApplied associate-/r*16.7
Simplified16.7
if -2.57120366754749e-295 < b_2 < 2.0945334611922723e+90Initial program 9.2
rmApplied div-inv9.3
if 2.0945334611922723e+90 < b_2 Initial program 45.6
rmApplied flip--62.7
Simplified61.8
Simplified61.8
rmApplied div-inv61.8
Applied associate-/l*62.2
Simplified62.2
Taylor expanded around inf 4.4
Simplified4.4
Final simplification8.8
herbie shell --seed 2020042 +o rules:numerics
(FPCore (a b_2 c)
:name "NMSE problem 3.2.1"
:precision binary64
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))