\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -4.706781135059311758856471716413486308072 \cdot 10^{-92}:\\
\;\;\;\;1 \cdot \left(\frac{-1}{2} \cdot \frac{c}{b_2}\right)\\
\mathbf{elif}\;b_2 \le 5.722235152988638272816037483919181313619 \cdot 10^{98}:\\
\;\;\;\;1 \cdot \frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\
\mathbf{else}:\\
\;\;\;\;1 \cdot \left(\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\right)\\
\end{array}double f(double a, double b_2, double c) {
double r11586 = b_2;
double r11587 = -r11586;
double r11588 = r11586 * r11586;
double r11589 = a;
double r11590 = c;
double r11591 = r11589 * r11590;
double r11592 = r11588 - r11591;
double r11593 = sqrt(r11592);
double r11594 = r11587 - r11593;
double r11595 = r11594 / r11589;
return r11595;
}
double f(double a, double b_2, double c) {
double r11596 = b_2;
double r11597 = -4.706781135059312e-92;
bool r11598 = r11596 <= r11597;
double r11599 = 1.0;
double r11600 = -0.5;
double r11601 = c;
double r11602 = r11601 / r11596;
double r11603 = r11600 * r11602;
double r11604 = r11599 * r11603;
double r11605 = 5.722235152988638e+98;
bool r11606 = r11596 <= r11605;
double r11607 = -r11596;
double r11608 = r11596 * r11596;
double r11609 = a;
double r11610 = r11609 * r11601;
double r11611 = r11608 - r11610;
double r11612 = sqrt(r11611);
double r11613 = r11607 - r11612;
double r11614 = r11613 / r11609;
double r11615 = r11599 * r11614;
double r11616 = 0.5;
double r11617 = r11616 * r11602;
double r11618 = 2.0;
double r11619 = r11596 / r11609;
double r11620 = r11618 * r11619;
double r11621 = r11617 - r11620;
double r11622 = r11599 * r11621;
double r11623 = r11606 ? r11615 : r11622;
double r11624 = r11598 ? r11604 : r11623;
return r11624;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -4.706781135059312e-92Initial program 52.4
rmApplied div-inv52.4
rmApplied *-un-lft-identity52.4
Applied associate-*l*52.4
Simplified52.4
Taylor expanded around -inf 10.2
if -4.706781135059312e-92 < b_2 < 5.722235152988638e+98Initial program 12.6
rmApplied div-inv12.7
rmApplied *-un-lft-identity12.7
Applied associate-*l*12.7
Simplified12.6
if 5.722235152988638e+98 < b_2 Initial program 47.1
rmApplied div-inv47.1
rmApplied *-un-lft-identity47.1
Applied associate-*l*47.1
Simplified47.1
Taylor expanded around inf 3.6
Final simplification10.1
herbie shell --seed 2019353 +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))