\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.091796875:\\
\;\;\;\;\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}double f(double a, double b_2, double c) {
double r628756 = b_2;
double r628757 = -r628756;
double r628758 = r628756 * r628756;
double r628759 = a;
double r628760 = c;
double r628761 = r628759 * r628760;
double r628762 = r628758 - r628761;
double r628763 = sqrt(r628762);
double r628764 = r628757 - r628763;
double r628765 = r628764 / r628759;
return r628765;
}
double f(double a, double b_2, double c) {
double r628766 = b_2;
double r628767 = -0.091796875;
bool r628768 = r628766 <= r628767;
double r628769 = a;
double r628770 = c;
double r628771 = r628769 * r628770;
double r628772 = -r628766;
double r628773 = r628772 + r628766;
double r628774 = r628772 + r628772;
double r628775 = r628773 * r628774;
double r628776 = r628771 + r628775;
double r628777 = r628776 / r628769;
double r628778 = r628766 * r628766;
double r628779 = r628778 - r628771;
double r628780 = sqrt(r628779);
double r628781 = r628772 + r628780;
double r628782 = r628777 / r628781;
double r628783 = r628772 - r628780;
double r628784 = r628783 / r628769;
double r628785 = r628768 ? r628782 : r628784;
return r628785;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
if b_2 < -0.091796875Initial program 3.5
rmApplied p16-flip--3.0
Applied associate-/l/3.1
Simplified0.7
rmApplied associate-/r*0.5
if -0.091796875 < b_2 Initial program 0.4
Final simplification0.4
herbie shell --seed 2019104
(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))