\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -3.828737593568666707297780122417133955299 \cdot 10^{109}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - \frac{b_2}{\frac{a}{2}}\\
\mathbf{elif}\;b_2 \le 1.423163788076292919361412483479690249604 \cdot 10^{-136}:\\
\;\;\;\;\frac{\sqrt{\sqrt{\sqrt{b_2 \cdot b_2 - a \cdot c}} \cdot \sqrt{\sqrt{b_2 \cdot b_2 - a \cdot c}} - b_2}}{\frac{a}{\sqrt{\sqrt{{b_2}^{2} - a \cdot c} - b_2}}}\\
\mathbf{else}:\\
\;\;\;\;\frac{c}{b_2} \cdot \frac{-1}{2}\\
\end{array}double f(double a, double b_2, double c) {
double r24875 = b_2;
double r24876 = -r24875;
double r24877 = r24875 * r24875;
double r24878 = a;
double r24879 = c;
double r24880 = r24878 * r24879;
double r24881 = r24877 - r24880;
double r24882 = sqrt(r24881);
double r24883 = r24876 + r24882;
double r24884 = r24883 / r24878;
return r24884;
}
double f(double a, double b_2, double c) {
double r24885 = b_2;
double r24886 = -3.828737593568667e+109;
bool r24887 = r24885 <= r24886;
double r24888 = 0.5;
double r24889 = c;
double r24890 = r24889 / r24885;
double r24891 = r24888 * r24890;
double r24892 = a;
double r24893 = 2.0;
double r24894 = r24892 / r24893;
double r24895 = r24885 / r24894;
double r24896 = r24891 - r24895;
double r24897 = 1.423163788076293e-136;
bool r24898 = r24885 <= r24897;
double r24899 = r24885 * r24885;
double r24900 = r24892 * r24889;
double r24901 = r24899 - r24900;
double r24902 = sqrt(r24901);
double r24903 = sqrt(r24902);
double r24904 = r24903 * r24903;
double r24905 = r24904 - r24885;
double r24906 = sqrt(r24905);
double r24907 = pow(r24885, r24893);
double r24908 = r24907 - r24900;
double r24909 = sqrt(r24908);
double r24910 = r24909 - r24885;
double r24911 = sqrt(r24910);
double r24912 = r24892 / r24911;
double r24913 = r24906 / r24912;
double r24914 = -0.5;
double r24915 = r24890 * r24914;
double r24916 = r24898 ? r24913 : r24915;
double r24917 = r24887 ? r24896 : r24916;
return r24917;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -3.828737593568667e+109Initial program 49.5
Simplified49.5
Taylor expanded around -inf 3.7
Simplified3.7
if -3.828737593568667e+109 < b_2 < 1.423163788076293e-136Initial program 11.4
Simplified11.4
rmApplied clear-num11.5
Simplified11.5
rmApplied add-sqr-sqrt11.8
Applied *-un-lft-identity11.8
Applied times-frac11.8
Applied associate-/r*11.8
Simplified11.8
rmApplied add-sqr-sqrt11.8
Applied sqrt-prod11.8
Simplified11.8
Simplified11.8
if 1.423163788076293e-136 < b_2 Initial program 50.8
Simplified50.8
Taylor expanded around inf 12.2
Simplified12.2
Final simplification10.8
herbie shell --seed 2019196
(FPCore (a b_2 c)
:name "quad2p (problem 3.2.1, positive)"
(/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))