double f(double a, double b_2, double c) {
double r623386 = b_2;
double r623387 = -r623386;
double r623388 = r623386 * r623386;
double r623389 = a;
double r623390 = c;
double r623391 = r623389 * r623390;
double r623392 = r623388 - r623391;
double r623393 = sqrt(r623392);
double r623394 = r623387 - r623393;
double r623395 = r623394 / r623389;
return r623395;
}
double f(double a, double b_2, double c) {
double r623396 = b_2;
double r623397 = 0.0292205810546875;
bool r623398 = r623396 <= r623397;
double r623399 = a;
double r623400 = c;
double r623401 = r623399 * r623400;
double r623402 = -r623396;
double r623403 = r623402 + r623396;
double r623404 = r623402 + r623402;
double r623405 = r623403 * r623404;
double r623406 = r623401 + r623405;
double r623407 = r623406 / r623399;
double r623408 = r623396 * r623396;
double r623409 = r623408 - r623401;
double r623410 = sqrt(r623409);
double r623411 = r623402 + r623410;
double r623412 = r623407 / r623411;
double r623413 = r623402 - r623410;
double r623414 = r623413 / r623399;
double r623415 = r623398 ? r623412 : r623414;
return r623415;
}
\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le 0.0292205810546875:\\
\;\;\;\;\frac{\frac{a \cdot c + \left(\left(-b_2\right) + b_2\right) \cdot \left(\left(-b_2\right) + \left(-b_2\right)\right)}{a}}{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\
\end{array}


Bits error versus a



Bits error versus b_2



Bits error versus c
if b_2 < 0.0292205810546875Initial program 2.8
rmApplied p16-flip--2.5
Applied associate-/l/2.6
Simplified0.7
rmApplied associate-/r*0.5
if 0.0292205810546875 < b_2 Initial program 0.4
Final simplification0.4
herbie shell --seed 2019102 +o rules:numerics
(FPCore (a b_2 c)
:name "quad2m (problem 3.2.1, negative)"
(/.p16 (-.p16 (neg.p16 b_2) (sqrt.p16 (-.p16 (*.p16 b_2 b_2) (*.p16 a c)))) a))