\begin{array}{l}
\mathbf{if}\;b \ge 0.0:\\
\;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\
\mathbf{else}:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\
\end{array}\begin{array}{l}
\mathbf{if}\;b \le -1.347978711569673851833534510641323804253 \cdot 10^{154}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0.0:\\
\;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\
\mathbf{else}:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \left(2 \cdot \frac{a \cdot c}{b} - b\right)}\\
\end{array}\\
\mathbf{elif}\;b \le 1.251150909973147470730842219225836611014 \cdot 10^{103}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0.0:\\
\;\;\;\;\frac{\left(-b\right) - \sqrt{\sqrt{\mathsf{fma}\left(4 \cdot a, -c, {b}^{2}\right)}} \cdot \sqrt{\sqrt{\mathsf{fma}\left(4 \cdot a, -c, {b}^{2}\right)}}}{2 \cdot a}\\
\mathbf{else}:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\
\end{array}\\
\mathbf{elif}\;b \ge 0.0:\\
\;\;\;\;\frac{\left(-b\right) - \left(b - 2 \cdot \frac{a \cdot c}{b}\right)}{2 \cdot a}\\
\mathbf{else}:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\
\end{array}double f(double a, double b, double c) {
double r35805 = b;
double r35806 = 0.0;
bool r35807 = r35805 >= r35806;
double r35808 = -r35805;
double r35809 = r35805 * r35805;
double r35810 = 4.0;
double r35811 = a;
double r35812 = r35810 * r35811;
double r35813 = c;
double r35814 = r35812 * r35813;
double r35815 = r35809 - r35814;
double r35816 = sqrt(r35815);
double r35817 = r35808 - r35816;
double r35818 = 2.0;
double r35819 = r35818 * r35811;
double r35820 = r35817 / r35819;
double r35821 = r35818 * r35813;
double r35822 = r35808 + r35816;
double r35823 = r35821 / r35822;
double r35824 = r35807 ? r35820 : r35823;
return r35824;
}
double f(double a, double b, double c) {
double r35825 = b;
double r35826 = -1.347978711569674e+154;
bool r35827 = r35825 <= r35826;
double r35828 = 0.0;
bool r35829 = r35825 >= r35828;
double r35830 = -r35825;
double r35831 = r35825 * r35825;
double r35832 = 4.0;
double r35833 = a;
double r35834 = r35832 * r35833;
double r35835 = c;
double r35836 = r35834 * r35835;
double r35837 = r35831 - r35836;
double r35838 = sqrt(r35837);
double r35839 = r35830 - r35838;
double r35840 = 2.0;
double r35841 = r35840 * r35833;
double r35842 = r35839 / r35841;
double r35843 = r35840 * r35835;
double r35844 = r35833 * r35835;
double r35845 = r35844 / r35825;
double r35846 = r35840 * r35845;
double r35847 = r35846 - r35825;
double r35848 = r35830 + r35847;
double r35849 = r35843 / r35848;
double r35850 = r35829 ? r35842 : r35849;
double r35851 = 1.2511509099731475e+103;
bool r35852 = r35825 <= r35851;
double r35853 = -r35835;
double r35854 = 2.0;
double r35855 = pow(r35825, r35854);
double r35856 = fma(r35834, r35853, r35855);
double r35857 = sqrt(r35856);
double r35858 = sqrt(r35857);
double r35859 = r35858 * r35858;
double r35860 = r35830 - r35859;
double r35861 = r35860 / r35841;
double r35862 = r35830 + r35838;
double r35863 = r35843 / r35862;
double r35864 = r35829 ? r35861 : r35863;
double r35865 = r35825 - r35846;
double r35866 = r35830 - r35865;
double r35867 = r35866 / r35841;
double r35868 = r35829 ? r35867 : r35863;
double r35869 = r35852 ? r35864 : r35868;
double r35870 = r35827 ? r35850 : r35869;
return r35870;
}



Bits error versus a



Bits error versus b



Bits error versus c
if b < -1.347978711569674e+154Initial program 38.0
Taylor expanded around -inf 6.2
if -1.347978711569674e+154 < b < 1.2511509099731475e+103Initial program 8.1
rmApplied add-sqr-sqrt8.1
Applied sqrt-prod8.2
Simplified8.2
Simplified8.2
if 1.2511509099731475e+103 < b Initial program 47.7
Taylor expanded around inf 10.0
Final simplification8.1
herbie shell --seed 2019212 +o rules:numerics
(FPCore (a b c)
:name "jeff quadratic root 1"
:precision binary64
(if (>= b 0.0) (/ (- (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (/ (* 2 c) (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))))))