\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 r39794 = b;
double r39795 = 0.0;
bool r39796 = r39794 >= r39795;
double r39797 = -r39794;
double r39798 = r39794 * r39794;
double r39799 = 4.0;
double r39800 = a;
double r39801 = r39799 * r39800;
double r39802 = c;
double r39803 = r39801 * r39802;
double r39804 = r39798 - r39803;
double r39805 = sqrt(r39804);
double r39806 = r39797 - r39805;
double r39807 = 2.0;
double r39808 = r39807 * r39800;
double r39809 = r39806 / r39808;
double r39810 = r39807 * r39802;
double r39811 = r39797 + r39805;
double r39812 = r39810 / r39811;
double r39813 = r39796 ? r39809 : r39812;
return r39813;
}
double f(double a, double b, double c) {
double r39814 = b;
double r39815 = -2.0079720992890853e+154;
bool r39816 = r39814 <= r39815;
double r39817 = 0.0;
bool r39818 = r39814 >= r39817;
double r39819 = -r39814;
double r39820 = r39814 * r39814;
double r39821 = 4.0;
double r39822 = a;
double r39823 = r39821 * r39822;
double r39824 = c;
double r39825 = r39823 * r39824;
double r39826 = r39820 - r39825;
double r39827 = sqrt(r39826);
double r39828 = r39819 - r39827;
double r39829 = 2.0;
double r39830 = r39829 * r39822;
double r39831 = r39828 / r39830;
double r39832 = r39829 * r39824;
double r39833 = r39822 * r39824;
double r39834 = r39833 / r39814;
double r39835 = r39829 * r39834;
double r39836 = r39835 - r39814;
double r39837 = r39819 + r39836;
double r39838 = r39832 / r39837;
double r39839 = r39818 ? r39831 : r39838;
double r39840 = 1.4702486099407425e+123;
bool r39841 = r39814 <= r39840;
double r39842 = sqrt(r39819);
double r39843 = fma(r39842, r39842, r39827);
double r39844 = r39832 / r39843;
double r39845 = r39818 ? r39831 : r39844;
double r39846 = 2.0;
double r39847 = r39846 * r39814;
double r39848 = r39835 - r39847;
double r39849 = r39848 / r39830;
double r39850 = r39819 + r39827;
double r39851 = r39832 / r39850;
double r39852 = r39818 ? r39849 : r39851;
double r39853 = r39841 ? r39845 : r39852;
double r39854 = r39816 ? r39839 : r39853;
return r39854;
}



Bits error versus a



Bits error versus b



Bits error versus c
if b < -2.0079720992890853e+154Initial program 38.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)))))))