\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 -2.0079720992890853 \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.4702486099407425 \cdot 10^{123}:\\
\;\;\;\;\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}{\mathsf{fma}\left(\sqrt{-b}, \sqrt{-b}, \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}\\
\end{array}\\
\mathbf{elif}\;b \ge 0.0:\\
\;\;\;\;\frac{2 \cdot \frac{a \cdot c}{b} - 2 \cdot b}{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 r39818 = b;
double r39819 = 0.0;
bool r39820 = r39818 >= r39819;
double r39821 = -r39818;
double r39822 = r39818 * r39818;
double r39823 = 4.0;
double r39824 = a;
double r39825 = r39823 * r39824;
double r39826 = c;
double r39827 = r39825 * r39826;
double r39828 = r39822 - r39827;
double r39829 = sqrt(r39828);
double r39830 = r39821 - r39829;
double r39831 = 2.0;
double r39832 = r39831 * r39824;
double r39833 = r39830 / r39832;
double r39834 = r39831 * r39826;
double r39835 = r39821 + r39829;
double r39836 = r39834 / r39835;
double r39837 = r39820 ? r39833 : r39836;
return r39837;
}
double f(double a, double b, double c) {
double r39838 = b;
double r39839 = -2.0079720992890853e+154;
bool r39840 = r39838 <= r39839;
double r39841 = 0.0;
bool r39842 = r39838 >= r39841;
double r39843 = -r39838;
double r39844 = r39838 * r39838;
double r39845 = 4.0;
double r39846 = a;
double r39847 = r39845 * r39846;
double r39848 = c;
double r39849 = r39847 * r39848;
double r39850 = r39844 - r39849;
double r39851 = sqrt(r39850);
double r39852 = r39843 - r39851;
double r39853 = 2.0;
double r39854 = r39853 * r39846;
double r39855 = r39852 / r39854;
double r39856 = r39853 * r39848;
double r39857 = r39846 * r39848;
double r39858 = r39857 / r39838;
double r39859 = r39853 * r39858;
double r39860 = r39859 - r39838;
double r39861 = r39843 + r39860;
double r39862 = r39856 / r39861;
double r39863 = r39842 ? r39855 : r39862;
double r39864 = 1.4702486099407425e+123;
bool r39865 = r39838 <= r39864;
double r39866 = sqrt(r39843);
double r39867 = fma(r39866, r39866, r39851);
double r39868 = r39856 / r39867;
double r39869 = r39842 ? r39855 : r39868;
double r39870 = 2.0;
double r39871 = r39870 * r39838;
double r39872 = r39859 - r39871;
double r39873 = r39872 / r39854;
double r39874 = r39843 + r39851;
double r39875 = r39856 / r39874;
double r39876 = r39842 ? r39873 : r39875;
double r39877 = r39865 ? r39869 : r39876;
double r39878 = r39840 ? r39863 : r39877;
return r39878;
}



Bits error versus a



Bits error versus b



Bits error versus c
if b < -2.0079720992890853e+154Initial program 38.5
rmApplied add-cube-cbrt38.5
Taylor expanded around -inf 7.0
if -2.0079720992890853e+154 < b < 1.4702486099407425e+123Initial program 8.4
rmApplied add-sqr-sqrt8.4
Applied fma-def8.4
if 1.4702486099407425e+123 < b Initial program 53.4
rmApplied add-sqr-sqrt53.4
Applied sqrt-prod53.4
Taylor expanded around inf 9.8
Final simplification8.3
herbie shell --seed 2020036 +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)))))))