\frac{\left(\left(-b_2\right) - \left(\sqrt{\left(\left(b_2 \cdot b_2\right) - \left(a \cdot c\right)\right)}\right)\right)}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -0.07232666015625:\\
\;\;\;\;\frac{1.0}{\frac{\sqrt{b_2 \cdot b_2 - c \cdot a} - b_2}{c}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\
\end{array}double f(double a, double b_2, double c) {
double r1169485 = b_2;
double r1169486 = -r1169485;
double r1169487 = r1169485 * r1169485;
double r1169488 = a;
double r1169489 = c;
double r1169490 = r1169488 * r1169489;
double r1169491 = r1169487 - r1169490;
double r1169492 = sqrt(r1169491);
double r1169493 = r1169486 - r1169492;
double r1169494 = r1169493 / r1169488;
return r1169494;
}
double f(double a, double b_2, double c) {
double r1169495 = b_2;
double r1169496 = -0.07232666015625;
bool r1169497 = r1169495 <= r1169496;
double r1169498 = 1.0;
double r1169499 = r1169495 * r1169495;
double r1169500 = c;
double r1169501 = a;
double r1169502 = r1169500 * r1169501;
double r1169503 = r1169499 - r1169502;
double r1169504 = sqrt(r1169503);
double r1169505 = r1169504 - r1169495;
double r1169506 = r1169505 / r1169500;
double r1169507 = r1169498 / r1169506;
double r1169508 = -r1169495;
double r1169509 = r1169501 * r1169500;
double r1169510 = r1169499 - r1169509;
double r1169511 = sqrt(r1169510);
double r1169512 = r1169508 - r1169511;
double r1169513 = r1169512 / r1169501;
double r1169514 = r1169497 ? r1169507 : r1169513;
return r1169514;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
if b_2 < -0.07232666015625Initial program 3.4
rmApplied p16-flip--3.0
Simplified0.7
Simplified0.7
rmApplied associate-/r*0.5
Simplified0.4
rmApplied associate-/l*0.5
if -0.07232666015625 < b_2 Initial program 0.4
Final simplification0.4
herbie shell --seed 2019128 +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))