\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -4.356959927988237168348139414849710212524 \cdot 10^{-56}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le 3.087668654677018032633364446323411964642 \cdot 10^{130}:\\
\;\;\;\;\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\frac{1}{2}, \frac{c}{b_2}, -2 \cdot \frac{b_2}{a}\right)\\
\end{array}double f(double a, double b_2, double c) {
double r4357060 = b_2;
double r4357061 = -r4357060;
double r4357062 = r4357060 * r4357060;
double r4357063 = a;
double r4357064 = c;
double r4357065 = r4357063 * r4357064;
double r4357066 = r4357062 - r4357065;
double r4357067 = sqrt(r4357066);
double r4357068 = r4357061 - r4357067;
double r4357069 = r4357068 / r4357063;
return r4357069;
}
double f(double a, double b_2, double c) {
double r4357070 = b_2;
double r4357071 = -4.356959927988237e-56;
bool r4357072 = r4357070 <= r4357071;
double r4357073 = -0.5;
double r4357074 = c;
double r4357075 = r4357074 / r4357070;
double r4357076 = r4357073 * r4357075;
double r4357077 = 3.087668654677018e+130;
bool r4357078 = r4357070 <= r4357077;
double r4357079 = -r4357070;
double r4357080 = r4357070 * r4357070;
double r4357081 = a;
double r4357082 = r4357081 * r4357074;
double r4357083 = r4357080 - r4357082;
double r4357084 = sqrt(r4357083);
double r4357085 = r4357079 - r4357084;
double r4357086 = r4357085 / r4357081;
double r4357087 = 0.5;
double r4357088 = -2.0;
double r4357089 = r4357070 / r4357081;
double r4357090 = r4357088 * r4357089;
double r4357091 = fma(r4357087, r4357075, r4357090);
double r4357092 = r4357078 ? r4357086 : r4357091;
double r4357093 = r4357072 ? r4357076 : r4357092;
return r4357093;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
if b_2 < -4.356959927988237e-56Initial program 53.9
Taylor expanded around -inf 7.7
if -4.356959927988237e-56 < b_2 < 3.087668654677018e+130Initial program 12.5
rmApplied div-inv12.7
rmApplied un-div-inv12.5
if 3.087668654677018e+130 < b_2 Initial program 56.1
Taylor expanded around inf 2.4
Simplified2.4
Final simplification9.3
herbie shell --seed 2019174 +o rules:numerics
(FPCore (a b_2 c)
:name "NMSE problem 3.2.1"
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))