\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\begin{array}{l}
\mathbf{if}\;b \le -1.98276540088900058 \cdot 10^{134}:\\
\;\;\;\;1 \cdot \left(\frac{c}{b} - \frac{b}{a}\right)\\
\mathbf{elif}\;b \le 1.1860189201379418 \cdot 10^{-161}:\\
\;\;\;\;\left(\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right) \cdot \frac{1}{2 \cdot a}\\
\mathbf{else}:\\
\;\;\;\;-1 \cdot \frac{c}{b}\\
\end{array}double f(double a, double b, double c) {
double r38795 = b;
double r38796 = -r38795;
double r38797 = r38795 * r38795;
double r38798 = 4.0;
double r38799 = a;
double r38800 = r38798 * r38799;
double r38801 = c;
double r38802 = r38800 * r38801;
double r38803 = r38797 - r38802;
double r38804 = sqrt(r38803);
double r38805 = r38796 + r38804;
double r38806 = 2.0;
double r38807 = r38806 * r38799;
double r38808 = r38805 / r38807;
return r38808;
}
double f(double a, double b, double c) {
double r38809 = b;
double r38810 = -1.9827654008890006e+134;
bool r38811 = r38809 <= r38810;
double r38812 = 1.0;
double r38813 = c;
double r38814 = r38813 / r38809;
double r38815 = a;
double r38816 = r38809 / r38815;
double r38817 = r38814 - r38816;
double r38818 = r38812 * r38817;
double r38819 = 1.1860189201379418e-161;
bool r38820 = r38809 <= r38819;
double r38821 = -r38809;
double r38822 = r38809 * r38809;
double r38823 = 4.0;
double r38824 = r38823 * r38815;
double r38825 = r38824 * r38813;
double r38826 = r38822 - r38825;
double r38827 = sqrt(r38826);
double r38828 = r38821 + r38827;
double r38829 = 1.0;
double r38830 = 2.0;
double r38831 = r38830 * r38815;
double r38832 = r38829 / r38831;
double r38833 = r38828 * r38832;
double r38834 = -1.0;
double r38835 = r38834 * r38814;
double r38836 = r38820 ? r38833 : r38835;
double r38837 = r38811 ? r38818 : r38836;
return r38837;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -1.9827654008890006e+134Initial program 56.8
Taylor expanded around -inf 3.1
Simplified3.1
if -1.9827654008890006e+134 < b < 1.1860189201379418e-161Initial program 10.3
rmApplied div-inv10.5
if 1.1860189201379418e-161 < b Initial program 49.7
Taylor expanded around inf 13.7
Final simplification10.9
herbie shell --seed 2020047
(FPCore (a b c)
:name "Quadratic roots, full range"
:precision binary64
(/ (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)))