\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -2726755826697749371122441483452416:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le -1.220863356651405551526191855483353869404 \cdot 10^{-93}:\\
\;\;\;\;\left(c \cdot a\right) \cdot \frac{1}{a \cdot \left(\sqrt{b_2 \cdot b_2 - c \cdot a} - b_2\right)}\\
\mathbf{elif}\;b_2 \le 5.878879592304488221733339437168429062361 \cdot 10^{101}:\\
\;\;\;\;\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - c \cdot a}}{a}\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(-2, \frac{b_2}{a}, \frac{c}{b_2} \cdot \frac{1}{2}\right)\\
\end{array}double f(double a, double b_2, double c) {
double r939786 = b_2;
double r939787 = -r939786;
double r939788 = r939786 * r939786;
double r939789 = a;
double r939790 = c;
double r939791 = r939789 * r939790;
double r939792 = r939788 - r939791;
double r939793 = sqrt(r939792);
double r939794 = r939787 - r939793;
double r939795 = r939794 / r939789;
return r939795;
}
double f(double a, double b_2, double c) {
double r939796 = b_2;
double r939797 = -2.7267558266977494e+33;
bool r939798 = r939796 <= r939797;
double r939799 = -0.5;
double r939800 = c;
double r939801 = r939800 / r939796;
double r939802 = r939799 * r939801;
double r939803 = -1.2208633566514056e-93;
bool r939804 = r939796 <= r939803;
double r939805 = a;
double r939806 = r939800 * r939805;
double r939807 = 1.0;
double r939808 = r939796 * r939796;
double r939809 = r939808 - r939806;
double r939810 = sqrt(r939809);
double r939811 = r939810 - r939796;
double r939812 = r939805 * r939811;
double r939813 = r939807 / r939812;
double r939814 = r939806 * r939813;
double r939815 = 5.878879592304488e+101;
bool r939816 = r939796 <= r939815;
double r939817 = -r939796;
double r939818 = r939817 - r939810;
double r939819 = r939818 / r939805;
double r939820 = -2.0;
double r939821 = r939796 / r939805;
double r939822 = 0.5;
double r939823 = r939801 * r939822;
double r939824 = fma(r939820, r939821, r939823);
double r939825 = r939816 ? r939819 : r939824;
double r939826 = r939804 ? r939814 : r939825;
double r939827 = r939798 ? r939802 : r939826;
return r939827;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
if b_2 < -2.7267558266977494e+33Initial program 56.5
Taylor expanded around -inf 4.4
if -2.7267558266977494e+33 < b_2 < -1.2208633566514056e-93Initial program 41.1
rmApplied flip--41.1
Simplified16.7
Simplified16.7
rmApplied *-un-lft-identity16.7
Applied div-inv16.8
Applied times-frac20.3
Simplified20.3
Simplified20.5
if -1.2208633566514056e-93 < b_2 < 5.878879592304488e+101Initial program 12.5
rmApplied div-inv12.6
rmApplied un-div-inv12.5
if 5.878879592304488e+101 < b_2 Initial program 46.7
Taylor expanded around inf 4.4
Simplified4.4
Final simplification9.6
herbie shell --seed 2019172 +o rules:numerics
(FPCore (a b_2 c)
:name "quad2m (problem 3.2.1, negative)"
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))