\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -2.145052474011387162318140265226763696231 \cdot 10^{-21}:\\
\;\;\;\;\frac{c \cdot \frac{-1}{2}}{b_2}\\
\mathbf{elif}\;b_2 \le 3.98696218646995035082893792769578320558 \cdot 10^{45}:\\
\;\;\;\;-\frac{\sqrt{\mathsf{fma}\left(-a, c, b_2 \cdot b_2\right)} + b_2}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{-\left(b_2 + b_2\right)}{a}\\
\end{array}double f(double a, double b_2, double c) {
double r73681 = b_2;
double r73682 = -r73681;
double r73683 = r73681 * r73681;
double r73684 = a;
double r73685 = c;
double r73686 = r73684 * r73685;
double r73687 = r73683 - r73686;
double r73688 = sqrt(r73687);
double r73689 = r73682 - r73688;
double r73690 = r73689 / r73684;
return r73690;
}
double f(double a, double b_2, double c) {
double r73691 = b_2;
double r73692 = -2.145052474011387e-21;
bool r73693 = r73691 <= r73692;
double r73694 = c;
double r73695 = -0.5;
double r73696 = r73694 * r73695;
double r73697 = r73696 / r73691;
double r73698 = 3.9869621864699504e+45;
bool r73699 = r73691 <= r73698;
double r73700 = a;
double r73701 = -r73700;
double r73702 = r73691 * r73691;
double r73703 = fma(r73701, r73694, r73702);
double r73704 = sqrt(r73703);
double r73705 = r73704 + r73691;
double r73706 = r73705 / r73700;
double r73707 = -r73706;
double r73708 = r73691 + r73691;
double r73709 = -r73708;
double r73710 = r73709 / r73700;
double r73711 = r73699 ? r73707 : r73710;
double r73712 = r73693 ? r73697 : r73711;
return r73712;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
if b_2 < -2.145052474011387e-21Initial program 55.0
Simplified55.0
Taylor expanded around -inf 6.3
Simplified6.3
if -2.145052474011387e-21 < b_2 < 3.9869621864699504e+45Initial program 15.5
Simplified15.5
rmApplied clear-num15.6
Simplified15.6
rmApplied neg-mul-115.6
Applied *-un-lft-identity15.6
Applied times-frac15.6
Applied add-cube-cbrt15.6
Applied times-frac15.6
Simplified15.6
Simplified15.5
if 3.9869621864699504e+45 < b_2 Initial program 37.4
Simplified37.4
rmApplied clear-num37.5
Simplified37.5
rmApplied neg-mul-137.5
Applied *-un-lft-identity37.5
Applied times-frac37.5
Applied add-cube-cbrt37.5
Applied times-frac37.5
Simplified37.5
Simplified37.4
Taylor expanded around 0 6.6
Final simplification10.5
herbie shell --seed 2019179 +o rules:numerics
(FPCore (a b_2 c)
:name "NMSE problem 3.2.1"
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))