\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -3.234164035284793 \cdot 10^{+22}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le -2.4242286502051438 \cdot 10^{-135}:\\
\;\;\;\;\frac{\frac{a \cdot c + \left(b_2 \cdot b_2 - b_2 \cdot b_2\right)}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}{a}\\
\mathbf{elif}\;b_2 \le 1.7205132563858266 \cdot 10^{+103}:\\
\;\;\;\;\frac{1}{a} \cdot \left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\frac{1}{2}, \frac{c}{b_2}, \frac{-2 \cdot b_2}{a}\right)\\
\end{array}double f(double a, double b_2, double c) {
double r4117230 = b_2;
double r4117231 = -r4117230;
double r4117232 = r4117230 * r4117230;
double r4117233 = a;
double r4117234 = c;
double r4117235 = r4117233 * r4117234;
double r4117236 = r4117232 - r4117235;
double r4117237 = sqrt(r4117236);
double r4117238 = r4117231 - r4117237;
double r4117239 = r4117238 / r4117233;
return r4117239;
}
double f(double a, double b_2, double c) {
double r4117240 = b_2;
double r4117241 = -3.234164035284793e+22;
bool r4117242 = r4117240 <= r4117241;
double r4117243 = -0.5;
double r4117244 = c;
double r4117245 = r4117244 / r4117240;
double r4117246 = r4117243 * r4117245;
double r4117247 = -2.4242286502051438e-135;
bool r4117248 = r4117240 <= r4117247;
double r4117249 = a;
double r4117250 = r4117249 * r4117244;
double r4117251 = r4117240 * r4117240;
double r4117252 = r4117251 - r4117251;
double r4117253 = r4117250 + r4117252;
double r4117254 = r4117251 - r4117250;
double r4117255 = sqrt(r4117254);
double r4117256 = r4117255 - r4117240;
double r4117257 = r4117253 / r4117256;
double r4117258 = r4117257 / r4117249;
double r4117259 = 1.7205132563858266e+103;
bool r4117260 = r4117240 <= r4117259;
double r4117261 = 1.0;
double r4117262 = r4117261 / r4117249;
double r4117263 = -r4117240;
double r4117264 = r4117263 - r4117255;
double r4117265 = r4117262 * r4117264;
double r4117266 = 0.5;
double r4117267 = -2.0;
double r4117268 = r4117267 * r4117240;
double r4117269 = r4117268 / r4117249;
double r4117270 = fma(r4117266, r4117245, r4117269);
double r4117271 = r4117260 ? r4117265 : r4117270;
double r4117272 = r4117248 ? r4117258 : r4117271;
double r4117273 = r4117242 ? r4117246 : r4117272;
return r4117273;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
if b_2 < -3.234164035284793e+22Initial program 56.6
Taylor expanded around -inf 4.6
if -3.234164035284793e+22 < b_2 < -2.4242286502051438e-135Initial program 36.2
rmApplied flip--36.3
Simplified16.0
Simplified16.0
if -2.4242286502051438e-135 < b_2 < 1.7205132563858266e+103Initial program 11.1
rmApplied div-inv11.2
if 1.7205132563858266e+103 < b_2 Initial program 47.4
Taylor expanded around inf 3.2
Simplified3.5
Final simplification8.4
herbie shell --seed 2019165 +o rules:numerics
(FPCore (a b_2 c)
:name "NMSE problem 3.2.1"
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))