\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.0611572265625:\\
\;\;\;\;\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 r550215 = b_2;
double r550216 = -r550215;
double r550217 = r550215 * r550215;
double r550218 = a;
double r550219 = c;
double r550220 = r550218 * r550219;
double r550221 = r550217 - r550220;
double r550222 = sqrt(r550221);
double r550223 = r550216 - r550222;
double r550224 = r550223 / r550218;
return r550224;
}
double f(double a, double b_2, double c) {
double r550225 = b_2;
double r550226 = -0.0611572265625;
bool r550227 = r550225 <= r550226;
double r550228 = a;
double r550229 = c;
double r550230 = r550228 * r550229;
double r550231 = -r550225;
double r550232 = r550231 + r550225;
double r550233 = r550231 + r550231;
double r550234 = r550232 * r550233;
double r550235 = r550230 + r550234;
double r550236 = r550235 / r550228;
double r550237 = r550225 * r550225;
double r550238 = r550237 - r550230;
double r550239 = sqrt(r550238);
double r550240 = r550231 + r550239;
double r550241 = r550236 / r550240;
double r550242 = r550231 - r550239;
double r550243 = r550242 / r550228;
double r550244 = r550227 ? r550241 : r550243;
return r550244;
}



Bits error versus a



Bits error versus b_2



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