\begin{array}{l}
\mathbf{if}\;b \ge 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.6509659704621613 \cdot 10^{+43}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0:\\
\;\;\;\;\frac{\left(-b\right) - \sqrt{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}} \cdot \sqrt{\left|\sqrt[3]{b \cdot b - \left(4 \cdot a\right) \cdot c}\right| \cdot \sqrt{\sqrt[3]{b \cdot b - \left(4 \cdot a\right) \cdot c}}}}{a \cdot 2}\\
\mathbf{else}:\\
\;\;\;\;\frac{c \cdot 2}{\left(\frac{c}{b} \cdot a - b\right) \cdot 2}\\
\end{array}\\
\mathbf{elif}\;b \le 7.356079352631206 \cdot 10^{+120}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0:\\
\;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{a \cdot 2}\\
\mathbf{else}:\\
\;\;\;\;\frac{c \cdot 2}{\sqrt{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} + \left(-b\right)} \cdot \sqrt{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} + \left(-b\right)}}\\
\end{array}\\
\mathbf{elif}\;b \ge 0:\\
\;\;\;\;\frac{\left(\frac{c}{b} \cdot a - b\right) \cdot 2}{a \cdot 2}\\
\mathbf{else}:\\
\;\;\;\;\frac{c \cdot 2}{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} + \left(-b\right)}\\
\end{array}double f(double a, double b, double c) {
double r2062774 = b;
double r2062775 = 0.0;
bool r2062776 = r2062774 >= r2062775;
double r2062777 = -r2062774;
double r2062778 = r2062774 * r2062774;
double r2062779 = 4.0;
double r2062780 = a;
double r2062781 = r2062779 * r2062780;
double r2062782 = c;
double r2062783 = r2062781 * r2062782;
double r2062784 = r2062778 - r2062783;
double r2062785 = sqrt(r2062784);
double r2062786 = r2062777 - r2062785;
double r2062787 = 2.0;
double r2062788 = r2062787 * r2062780;
double r2062789 = r2062786 / r2062788;
double r2062790 = r2062787 * r2062782;
double r2062791 = r2062777 + r2062785;
double r2062792 = r2062790 / r2062791;
double r2062793 = r2062776 ? r2062789 : r2062792;
return r2062793;
}
double f(double a, double b, double c) {
double r2062794 = b;
double r2062795 = -1.6509659704621613e+43;
bool r2062796 = r2062794 <= r2062795;
double r2062797 = 0.0;
bool r2062798 = r2062794 >= r2062797;
double r2062799 = -r2062794;
double r2062800 = r2062794 * r2062794;
double r2062801 = 4.0;
double r2062802 = a;
double r2062803 = r2062801 * r2062802;
double r2062804 = c;
double r2062805 = r2062803 * r2062804;
double r2062806 = r2062800 - r2062805;
double r2062807 = sqrt(r2062806);
double r2062808 = sqrt(r2062807);
double r2062809 = cbrt(r2062806);
double r2062810 = fabs(r2062809);
double r2062811 = sqrt(r2062809);
double r2062812 = r2062810 * r2062811;
double r2062813 = sqrt(r2062812);
double r2062814 = r2062808 * r2062813;
double r2062815 = r2062799 - r2062814;
double r2062816 = 2.0;
double r2062817 = r2062802 * r2062816;
double r2062818 = r2062815 / r2062817;
double r2062819 = r2062804 * r2062816;
double r2062820 = r2062804 / r2062794;
double r2062821 = r2062820 * r2062802;
double r2062822 = r2062821 - r2062794;
double r2062823 = r2062822 * r2062816;
double r2062824 = r2062819 / r2062823;
double r2062825 = r2062798 ? r2062818 : r2062824;
double r2062826 = 7.356079352631206e+120;
bool r2062827 = r2062794 <= r2062826;
double r2062828 = r2062799 - r2062807;
double r2062829 = r2062828 / r2062817;
double r2062830 = r2062807 + r2062799;
double r2062831 = sqrt(r2062830);
double r2062832 = r2062831 * r2062831;
double r2062833 = r2062819 / r2062832;
double r2062834 = r2062798 ? r2062829 : r2062833;
double r2062835 = r2062823 / r2062817;
double r2062836 = r2062819 / r2062830;
double r2062837 = r2062798 ? r2062835 : r2062836;
double r2062838 = r2062827 ? r2062834 : r2062837;
double r2062839 = r2062796 ? r2062825 : r2062838;
return r2062839;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -1.6509659704621613e+43Initial program 23.7
Taylor expanded around -inf 6.9
Simplified4.0
rmApplied add-sqr-sqrt4.0
rmApplied add-cube-cbrt4.0
Applied sqrt-prod4.0
Simplified4.0
if -1.6509659704621613e+43 < b < 7.356079352631206e+120Initial program 8.5
rmApplied add-sqr-sqrt8.7
if 7.356079352631206e+120 < b Initial program 51.6
Taylor expanded around inf 10.5
Simplified3.6
Final simplification6.6
herbie shell --seed 2019119
(FPCore (a b c)
:name "jeff quadratic root 1"
(if (>= b 0) (/ (- (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (/ (* 2 c) (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))))))