\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -0.03099989563658142946445117615894560003653:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le -4.652312659939379000312469651590666723463 \cdot 10^{-132}:\\
\;\;\;\;\frac{\frac{c \cdot a}{\sqrt{b_2 \cdot b_2 - c \cdot a} - b_2}}{a}\\
\mathbf{elif}\;b_2 \le -4.782406139136436775896616480888561683498 \cdot 10^{-149}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le 63580190853209333432320:\\
\;\;\;\;-\frac{\sqrt{b_2 \cdot b_2 - c \cdot a} + b_2}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - \frac{b_2}{a} \cdot 2\\
\end{array}double f(double a, double b_2, double c) {
double r835765 = b_2;
double r835766 = -r835765;
double r835767 = r835765 * r835765;
double r835768 = a;
double r835769 = c;
double r835770 = r835768 * r835769;
double r835771 = r835767 - r835770;
double r835772 = sqrt(r835771);
double r835773 = r835766 - r835772;
double r835774 = r835773 / r835768;
return r835774;
}
double f(double a, double b_2, double c) {
double r835775 = b_2;
double r835776 = -0.03099989563658143;
bool r835777 = r835775 <= r835776;
double r835778 = -0.5;
double r835779 = c;
double r835780 = r835779 / r835775;
double r835781 = r835778 * r835780;
double r835782 = -4.652312659939379e-132;
bool r835783 = r835775 <= r835782;
double r835784 = a;
double r835785 = r835779 * r835784;
double r835786 = r835775 * r835775;
double r835787 = r835786 - r835785;
double r835788 = sqrt(r835787);
double r835789 = r835788 - r835775;
double r835790 = r835785 / r835789;
double r835791 = r835790 / r835784;
double r835792 = -4.782406139136437e-149;
bool r835793 = r835775 <= r835792;
double r835794 = 6.358019085320933e+22;
bool r835795 = r835775 <= r835794;
double r835796 = r835788 + r835775;
double r835797 = r835796 / r835784;
double r835798 = -r835797;
double r835799 = 0.5;
double r835800 = r835799 * r835780;
double r835801 = r835775 / r835784;
double r835802 = 2.0;
double r835803 = r835801 * r835802;
double r835804 = r835800 - r835803;
double r835805 = r835795 ? r835798 : r835804;
double r835806 = r835793 ? r835781 : r835805;
double r835807 = r835783 ? r835791 : r835806;
double r835808 = r835777 ? r835781 : r835807;
return r835808;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -0.03099989563658143 or -4.652312659939379e-132 < b_2 < -4.782406139136437e-149Initial program 54.6
Taylor expanded around -inf 7.6
if -0.03099989563658143 < b_2 < -4.652312659939379e-132Initial program 32.6
rmApplied flip--32.6
Simplified15.3
Simplified15.3
if -4.782406139136437e-149 < b_2 < 6.358019085320933e+22Initial program 12.3
rmApplied add-sqr-sqrt12.3
Applied sqrt-prod12.6
rmApplied neg-sub012.6
Applied associate--l-12.6
Simplified12.3
if 6.358019085320933e+22 < b_2 Initial program 33.1
Taylor expanded around inf 6.1
Final simplification9.5
herbie shell --seed 2019192
(FPCore (a b_2 c)
:name "quad2m (problem 3.2.1, negative)"
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))