\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -1.869662346631121401645595393947635525169 \cdot 10^{101}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le 7.455592343308264166675918758902222662503 \cdot 10^{-170}:\\
\;\;\;\;\frac{c}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\
\end{array}double f(double a, double b_2, double c) {
double r52845 = b_2;
double r52846 = -r52845;
double r52847 = r52845 * r52845;
double r52848 = a;
double r52849 = c;
double r52850 = r52848 * r52849;
double r52851 = r52847 - r52850;
double r52852 = sqrt(r52851);
double r52853 = r52846 - r52852;
double r52854 = r52853 / r52848;
return r52854;
}
double f(double a, double b_2, double c) {
double r52855 = b_2;
double r52856 = -1.8696623466311214e+101;
bool r52857 = r52855 <= r52856;
double r52858 = -0.5;
double r52859 = c;
double r52860 = r52859 / r52855;
double r52861 = r52858 * r52860;
double r52862 = 7.455592343308264e-170;
bool r52863 = r52855 <= r52862;
double r52864 = r52855 * r52855;
double r52865 = a;
double r52866 = r52865 * r52859;
double r52867 = r52864 - r52866;
double r52868 = sqrt(r52867);
double r52869 = r52868 - r52855;
double r52870 = r52859 / r52869;
double r52871 = 0.5;
double r52872 = r52871 * r52860;
double r52873 = 2.0;
double r52874 = r52855 / r52865;
double r52875 = r52873 * r52874;
double r52876 = r52872 - r52875;
double r52877 = r52863 ? r52870 : r52876;
double r52878 = r52857 ? r52861 : r52877;
return r52878;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -1.8696623466311214e+101Initial program 59.8
Taylor expanded around -inf 2.5
if -1.8696623466311214e+101 < b_2 < 7.455592343308264e-170Initial program 28.9
rmApplied flip--29.1
Simplified16.6
Simplified16.6
rmApplied *-un-lft-identity16.6
Applied times-frac15.4
Applied associate-/l*12.2
Simplified11.1
if 7.455592343308264e-170 < b_2 Initial program 23.0
Taylor expanded around inf 17.1
Final simplification11.3
herbie shell --seed 2019323
(FPCore (a b_2 c)
:name "NMSE problem 3.2.1"
:precision binary64
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))