\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -0.03099989563658142946445117615894560003653:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le 5.992812285264992608677553115821113751089 \cdot 10^{-289}:\\
\;\;\;\;\frac{\frac{c \cdot a}{\sqrt{b_2 \cdot b_2 - c \cdot a} - b_2}}{a}\\
\mathbf{elif}\;b_2 \le 63580190853209333432320:\\
\;\;\;\;\frac{\mathsf{fma}\left(\sqrt[3]{b_2} \cdot \sqrt[3]{b_2}, -\sqrt[3]{b_2}, -\sqrt{b_2 \cdot b_2 - c \cdot a}\right)}{a}\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\frac{b_2}{a}, -2, \frac{\frac{1}{2}}{\frac{b_2}{c}}\right)\\
\end{array}double f(double a, double b_2, double c) {
double r2522157 = b_2;
double r2522158 = -r2522157;
double r2522159 = r2522157 * r2522157;
double r2522160 = a;
double r2522161 = c;
double r2522162 = r2522160 * r2522161;
double r2522163 = r2522159 - r2522162;
double r2522164 = sqrt(r2522163);
double r2522165 = r2522158 - r2522164;
double r2522166 = r2522165 / r2522160;
return r2522166;
}
double f(double a, double b_2, double c) {
double r2522167 = b_2;
double r2522168 = -0.03099989563658143;
bool r2522169 = r2522167 <= r2522168;
double r2522170 = -0.5;
double r2522171 = c;
double r2522172 = r2522171 / r2522167;
double r2522173 = r2522170 * r2522172;
double r2522174 = 5.992812285264993e-289;
bool r2522175 = r2522167 <= r2522174;
double r2522176 = a;
double r2522177 = r2522171 * r2522176;
double r2522178 = r2522167 * r2522167;
double r2522179 = r2522178 - r2522177;
double r2522180 = sqrt(r2522179);
double r2522181 = r2522180 - r2522167;
double r2522182 = r2522177 / r2522181;
double r2522183 = r2522182 / r2522176;
double r2522184 = 6.358019085320933e+22;
bool r2522185 = r2522167 <= r2522184;
double r2522186 = cbrt(r2522167);
double r2522187 = r2522186 * r2522186;
double r2522188 = -r2522186;
double r2522189 = -r2522180;
double r2522190 = fma(r2522187, r2522188, r2522189);
double r2522191 = r2522190 / r2522176;
double r2522192 = r2522167 / r2522176;
double r2522193 = -2.0;
double r2522194 = 0.5;
double r2522195 = r2522167 / r2522171;
double r2522196 = r2522194 / r2522195;
double r2522197 = fma(r2522192, r2522193, r2522196);
double r2522198 = r2522185 ? r2522191 : r2522197;
double r2522199 = r2522175 ? r2522183 : r2522198;
double r2522200 = r2522169 ? r2522173 : r2522199;
return r2522200;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
if b_2 < -0.03099989563658143Initial program 55.6
Taylor expanded around -inf 6.4
if -0.03099989563658143 < b_2 < 5.992812285264993e-289Initial program 24.4
rmApplied flip--24.4
Simplified16.6
Simplified16.6
if 5.992812285264993e-289 < b_2 < 6.358019085320933e+22Initial program 10.0
rmApplied add-cube-cbrt10.3
Applied distribute-rgt-neg-in10.3
Applied fma-neg10.3
if 6.358019085320933e+22 < b_2 Initial program 33.1
Taylor expanded around inf 6.1
Simplified6.1
Final simplification9.4
herbie shell --seed 2019192 +o rules:numerics
(FPCore (a b_2 c)
:name "NMSE problem 3.2.1"
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))