\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.3696490745623736 \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(2 \cdot \frac{a \cdot c}{b} - b\right) - b}\\
\end{array}\\
\mathbf{elif}\;b \le 9.1486145584744864 \cdot 10^{42}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0.0:\\
\;\;\;\;\frac{\left(-b\right) - \left(\sqrt[3]{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}} \cdot \sqrt[3]{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\right) \cdot \sqrt[3]{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}}{2 \cdot a}\\
\mathbf{else}:\\
\;\;\;\;\frac{2 \cdot c}{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} - b}\\
\end{array}\\
\mathbf{elif}\;b \ge 0.0:\\
\;\;\;\;1 \cdot \left(\frac{c}{b} - \frac{b}{a}\right)\\
\mathbf{else}:\\
\;\;\;\;-2 \cdot \frac{c}{b}\\
\end{array}double f(double a, double b, double c) {
double r38791 = b;
double r38792 = 0.0;
bool r38793 = r38791 >= r38792;
double r38794 = -r38791;
double r38795 = r38791 * r38791;
double r38796 = 4.0;
double r38797 = a;
double r38798 = r38796 * r38797;
double r38799 = c;
double r38800 = r38798 * r38799;
double r38801 = r38795 - r38800;
double r38802 = sqrt(r38801);
double r38803 = r38794 - r38802;
double r38804 = 2.0;
double r38805 = r38804 * r38797;
double r38806 = r38803 / r38805;
double r38807 = r38804 * r38799;
double r38808 = r38794 + r38802;
double r38809 = r38807 / r38808;
double r38810 = r38793 ? r38806 : r38809;
return r38810;
}
double f(double a, double b, double c) {
double r38811 = b;
double r38812 = -1.3696490745623736e+154;
bool r38813 = r38811 <= r38812;
double r38814 = 0.0;
bool r38815 = r38811 >= r38814;
double r38816 = -r38811;
double r38817 = r38811 * r38811;
double r38818 = 4.0;
double r38819 = a;
double r38820 = r38818 * r38819;
double r38821 = c;
double r38822 = r38820 * r38821;
double r38823 = r38817 - r38822;
double r38824 = sqrt(r38823);
double r38825 = r38816 - r38824;
double r38826 = 2.0;
double r38827 = r38826 * r38819;
double r38828 = r38825 / r38827;
double r38829 = r38826 * r38821;
double r38830 = r38819 * r38821;
double r38831 = r38830 / r38811;
double r38832 = r38826 * r38831;
double r38833 = r38832 - r38811;
double r38834 = r38833 - r38811;
double r38835 = r38829 / r38834;
double r38836 = r38815 ? r38828 : r38835;
double r38837 = 9.148614558474486e+42;
bool r38838 = r38811 <= r38837;
double r38839 = cbrt(r38824);
double r38840 = r38839 * r38839;
double r38841 = r38840 * r38839;
double r38842 = r38816 - r38841;
double r38843 = r38842 / r38827;
double r38844 = r38824 - r38811;
double r38845 = r38829 / r38844;
double r38846 = r38815 ? r38843 : r38845;
double r38847 = 1.0;
double r38848 = r38821 / r38811;
double r38849 = r38811 / r38819;
double r38850 = r38848 - r38849;
double r38851 = r38847 * r38850;
double r38852 = -2.0;
double r38853 = r38852 * r38848;
double r38854 = r38815 ? r38851 : r38853;
double r38855 = r38838 ? r38846 : r38854;
double r38856 = r38813 ? r38836 : r38855;
return r38856;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -1.3696490745623736e+154Initial program 37.0
Simplified37.0
Taylor expanded around -inf 6.5
if -1.3696490745623736e+154 < b < 9.148614558474486e+42Initial program 8.6
Simplified8.6
rmApplied add-cube-cbrt8.9
if 9.148614558474486e+42 < b Initial program 37.1
Simplified37.1
Taylor expanded around inf 11.3
Taylor expanded around 0 5.8
Simplified5.8
Taylor expanded around -inf 5.8
Final simplification7.9
herbie shell --seed 2020043
(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)))))))