\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.390658213785421360285622940547871300736 \cdot 10^{101}:\\
\;\;\;\;\frac{\left(\frac{c}{\frac{b}{a}} - b\right) \cdot 1}{a}\\
\mathbf{elif}\;b \le 4.330541687749954965862284767620099540245 \cdot 10^{-17}:\\
\;\;\;\;\frac{\frac{1}{\frac{2}{\sqrt{b \cdot b - \left(c \cdot a\right) \cdot 4} - b}}}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{1}{\frac{1}{b} - \frac{1 \cdot b}{c \cdot a}}}{a}\\
\end{array}double f(double a, double b, double c) {
double r1798821 = b;
double r1798822 = -r1798821;
double r1798823 = r1798821 * r1798821;
double r1798824 = 4.0;
double r1798825 = a;
double r1798826 = r1798824 * r1798825;
double r1798827 = c;
double r1798828 = r1798826 * r1798827;
double r1798829 = r1798823 - r1798828;
double r1798830 = sqrt(r1798829);
double r1798831 = r1798822 + r1798830;
double r1798832 = 2.0;
double r1798833 = r1798832 * r1798825;
double r1798834 = r1798831 / r1798833;
return r1798834;
}
double f(double a, double b, double c) {
double r1798835 = b;
double r1798836 = -1.3906582137854214e+101;
bool r1798837 = r1798835 <= r1798836;
double r1798838 = c;
double r1798839 = a;
double r1798840 = r1798835 / r1798839;
double r1798841 = r1798838 / r1798840;
double r1798842 = r1798841 - r1798835;
double r1798843 = 1.0;
double r1798844 = r1798842 * r1798843;
double r1798845 = r1798844 / r1798839;
double r1798846 = 4.330541687749955e-17;
bool r1798847 = r1798835 <= r1798846;
double r1798848 = 1.0;
double r1798849 = 2.0;
double r1798850 = r1798835 * r1798835;
double r1798851 = r1798838 * r1798839;
double r1798852 = 4.0;
double r1798853 = r1798851 * r1798852;
double r1798854 = r1798850 - r1798853;
double r1798855 = sqrt(r1798854);
double r1798856 = r1798855 - r1798835;
double r1798857 = r1798849 / r1798856;
double r1798858 = r1798848 / r1798857;
double r1798859 = r1798858 / r1798839;
double r1798860 = r1798843 / r1798835;
double r1798861 = r1798843 * r1798835;
double r1798862 = r1798861 / r1798851;
double r1798863 = r1798860 - r1798862;
double r1798864 = r1798848 / r1798863;
double r1798865 = r1798864 / r1798839;
double r1798866 = r1798847 ? r1798859 : r1798865;
double r1798867 = r1798837 ? r1798845 : r1798866;
return r1798867;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -1.3906582137854214e+101Initial program 48.2
Simplified48.2
Taylor expanded around -inf 10.3
Simplified3.5
if -1.3906582137854214e+101 < b < 4.330541687749955e-17Initial program 15.2
Simplified15.2
rmApplied clear-num15.3
if 4.330541687749955e-17 < b Initial program 55.6
Simplified55.6
rmApplied clear-num55.6
Taylor expanded around inf 17.3
Simplified17.3
Final simplification14.1
herbie shell --seed 2019172
(FPCore (a b c)
:name "Quadratic roots, full range"
(/ (+ (- b) (sqrt (- (* b b) (* (* 4.0 a) c)))) (* 2.0 a)))