\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -1.0366436397824178 \cdot 10^{68}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le -8.21218726880377109 \cdot 10^{-92}:\\
\;\;\;\;\frac{\frac{\left({b_2}^{2} - {b_2}^{2}\right) + a \cdot c}{\mathsf{fma}\left(-1, b_2, \sqrt{b_2 \cdot b_2 - a \cdot c}\right)}}{a}\\
\mathbf{elif}\;b_2 \le -4.05237835825691163 \cdot 10^{-102}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le 5.34931179548294658 \cdot 10^{30}:\\
\;\;\;\;\frac{-1 \cdot b_2 + \left(-\sqrt{b_2 \cdot b_2 - a \cdot c}\right)}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\
\end{array}double f(double a, double b_2, double c) {
double r16570 = b_2;
double r16571 = -r16570;
double r16572 = r16570 * r16570;
double r16573 = a;
double r16574 = c;
double r16575 = r16573 * r16574;
double r16576 = r16572 - r16575;
double r16577 = sqrt(r16576);
double r16578 = r16571 - r16577;
double r16579 = r16578 / r16573;
return r16579;
}
double f(double a, double b_2, double c) {
double r16580 = b_2;
double r16581 = -1.0366436397824178e+68;
bool r16582 = r16580 <= r16581;
double r16583 = -0.5;
double r16584 = c;
double r16585 = r16584 / r16580;
double r16586 = r16583 * r16585;
double r16587 = -8.212187268803771e-92;
bool r16588 = r16580 <= r16587;
double r16589 = 2.0;
double r16590 = pow(r16580, r16589);
double r16591 = r16590 - r16590;
double r16592 = a;
double r16593 = r16592 * r16584;
double r16594 = r16591 + r16593;
double r16595 = -1.0;
double r16596 = r16580 * r16580;
double r16597 = r16596 - r16593;
double r16598 = sqrt(r16597);
double r16599 = fma(r16595, r16580, r16598);
double r16600 = r16594 / r16599;
double r16601 = r16600 / r16592;
double r16602 = -4.052378358256912e-102;
bool r16603 = r16580 <= r16602;
double r16604 = 5.349311795482947e+30;
bool r16605 = r16580 <= r16604;
double r16606 = r16595 * r16580;
double r16607 = -r16598;
double r16608 = r16606 + r16607;
double r16609 = r16608 / r16592;
double r16610 = 0.5;
double r16611 = r16610 * r16585;
double r16612 = r16580 / r16592;
double r16613 = r16589 * r16612;
double r16614 = r16611 - r16613;
double r16615 = r16605 ? r16609 : r16614;
double r16616 = r16603 ? r16586 : r16615;
double r16617 = r16588 ? r16601 : r16616;
double r16618 = r16582 ? r16586 : r16617;
return r16618;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
if b_2 < -1.0366436397824178e+68 or -8.212187268803771e-92 < b_2 < -4.052378358256912e-102Initial program 57.1
Taylor expanded around -inf 4.6
if -1.0366436397824178e+68 < b_2 < -8.212187268803771e-92Initial program 42.4
rmApplied add-cube-cbrt44.7
Applied distribute-rgt-neg-in44.7
Applied fma-neg45.3
rmApplied fma-udef44.7
Simplified42.4
rmApplied flip-+42.4
Simplified15.8
Simplified15.8
if -4.052378358256912e-102 < b_2 < 5.349311795482947e+30Initial program 13.0
rmApplied add-cube-cbrt13.1
Applied distribute-rgt-neg-in13.1
Applied fma-neg13.1
rmApplied fma-udef13.1
Simplified13.0
if 5.349311795482947e+30 < b_2 Initial program 35.5
Taylor expanded around inf 6.4
Final simplification9.6
herbie shell --seed 2020049 +o rules:numerics
(FPCore (a b_2 c)
:name "quad2m (problem 3.2.1, negative)"
:precision binary64
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))