\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -8.260729798395838 \cdot 10^{-43}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le 1.67643144401154069 \cdot 10^{104}:\\
\;\;\;\;\frac{-b_2}{a} - \frac{\sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{-b_2}{a} - \left(\frac{b_2}{a} - \frac{1}{2} \cdot \frac{c}{b_2}\right)\\
\end{array}double f(double a, double b_2, double c) {
double r88819 = b_2;
double r88820 = -r88819;
double r88821 = r88819 * r88819;
double r88822 = a;
double r88823 = c;
double r88824 = r88822 * r88823;
double r88825 = r88821 - r88824;
double r88826 = sqrt(r88825);
double r88827 = r88820 - r88826;
double r88828 = r88827 / r88822;
return r88828;
}
double f(double a, double b_2, double c) {
double r88829 = b_2;
double r88830 = -8.260729798395838e-43;
bool r88831 = r88829 <= r88830;
double r88832 = -0.5;
double r88833 = c;
double r88834 = r88833 / r88829;
double r88835 = r88832 * r88834;
double r88836 = 1.6764314440115407e+104;
bool r88837 = r88829 <= r88836;
double r88838 = -r88829;
double r88839 = a;
double r88840 = r88838 / r88839;
double r88841 = r88829 * r88829;
double r88842 = r88839 * r88833;
double r88843 = r88841 - r88842;
double r88844 = sqrt(r88843);
double r88845 = r88844 / r88839;
double r88846 = r88840 - r88845;
double r88847 = r88829 / r88839;
double r88848 = 0.5;
double r88849 = r88848 * r88834;
double r88850 = r88847 - r88849;
double r88851 = r88840 - r88850;
double r88852 = r88837 ? r88846 : r88851;
double r88853 = r88831 ? r88835 : r88852;
return r88853;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -8.260729798395838e-43Initial program 54.7
Taylor expanded around -inf 7.3
if -8.260729798395838e-43 < b_2 < 1.6764314440115407e+104Initial program 14.0
rmApplied div-sub14.0
if 1.6764314440115407e+104 < b_2 Initial program 47.9
rmApplied div-sub47.9
Taylor expanded around inf 3.3
Final simplification9.9
herbie shell --seed 2020024 +o rules:numerics
(FPCore (a b_2 c)
:name "NMSE problem 3.2.1"
:precision binary64
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))