\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -2.30260065699914430088466347088364783298 \cdot 10^{85}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le -1.616213321049155371026664508407530431682 \cdot 10^{-298}:\\
\;\;\;\;c \cdot \frac{1}{\sqrt{\mathsf{fma}\left(b_2, b_2, -c \cdot a\right)} - b_2}\\
\mathbf{elif}\;b_2 \le 1.140745036075281127251828675303402372066 \cdot 10^{117}:\\
\;\;\;\;\frac{-b_2}{a} - \frac{\sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{b_2}{a} \cdot -2\\
\end{array}double f(double a, double b_2, double c) {
double r71652 = b_2;
double r71653 = -r71652;
double r71654 = r71652 * r71652;
double r71655 = a;
double r71656 = c;
double r71657 = r71655 * r71656;
double r71658 = r71654 - r71657;
double r71659 = sqrt(r71658);
double r71660 = r71653 - r71659;
double r71661 = r71660 / r71655;
return r71661;
}
double f(double a, double b_2, double c) {
double r71662 = b_2;
double r71663 = -2.3026006569991443e+85;
bool r71664 = r71662 <= r71663;
double r71665 = -0.5;
double r71666 = c;
double r71667 = r71666 / r71662;
double r71668 = r71665 * r71667;
double r71669 = -1.6162133210491554e-298;
bool r71670 = r71662 <= r71669;
double r71671 = 1.0;
double r71672 = a;
double r71673 = r71666 * r71672;
double r71674 = -r71673;
double r71675 = fma(r71662, r71662, r71674);
double r71676 = sqrt(r71675);
double r71677 = r71676 - r71662;
double r71678 = r71671 / r71677;
double r71679 = r71666 * r71678;
double r71680 = 1.1407450360752811e+117;
bool r71681 = r71662 <= r71680;
double r71682 = -r71662;
double r71683 = r71682 / r71672;
double r71684 = r71662 * r71662;
double r71685 = r71672 * r71666;
double r71686 = r71684 - r71685;
double r71687 = sqrt(r71686);
double r71688 = r71687 / r71672;
double r71689 = r71683 - r71688;
double r71690 = r71662 / r71672;
double r71691 = -2.0;
double r71692 = r71690 * r71691;
double r71693 = r71681 ? r71689 : r71692;
double r71694 = r71670 ? r71679 : r71693;
double r71695 = r71664 ? r71668 : r71694;
return r71695;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
if b_2 < -2.3026006569991443e+85Initial program 59.1
Taylor expanded around -inf 2.7
if -2.3026006569991443e+85 < b_2 < -1.6162133210491554e-298Initial program 32.4
rmApplied flip--32.4
Simplified17.8
Simplified17.8
rmApplied *-un-lft-identity17.8
Applied *-un-lft-identity17.8
Applied *-un-lft-identity17.8
Applied times-frac17.8
Applied times-frac17.8
Simplified17.8
Simplified9.6
rmApplied div-inv9.7
if -1.6162133210491554e-298 < b_2 < 1.1407450360752811e+117Initial program 9.6
rmApplied div-sub9.5
if 1.1407450360752811e+117 < b_2 Initial program 50.7
rmApplied flip--63.7
Simplified62.7
Simplified62.7
rmApplied *-un-lft-identity62.7
Applied *-un-lft-identity62.7
Applied *-un-lft-identity62.7
Applied times-frac62.7
Applied times-frac62.7
Simplified62.7
Simplified62.5
Taylor expanded around 0 4.0
Final simplification7.1
herbie shell --seed 2019351 +o rules:numerics
(FPCore (a b_2 c)
:name "NMSE problem 3.2.1"
:precision binary64
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))