\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -2.068787453924659787754027441129039063224 \cdot 10^{-76}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le 2.360908374051695590422690701366520544893 \cdot 10^{86}:\\
\;\;\;\;\left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right) \cdot \frac{1}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{\mathsf{fma}\left(-2, b_2, \frac{a \cdot \frac{1}{2}}{\frac{b_2}{c}}\right)}{a}\\
\end{array}double f(double a, double b_2, double c) {
double r1050186 = b_2;
double r1050187 = -r1050186;
double r1050188 = r1050186 * r1050186;
double r1050189 = a;
double r1050190 = c;
double r1050191 = r1050189 * r1050190;
double r1050192 = r1050188 - r1050191;
double r1050193 = sqrt(r1050192);
double r1050194 = r1050187 - r1050193;
double r1050195 = r1050194 / r1050189;
return r1050195;
}
double f(double a, double b_2, double c) {
double r1050196 = b_2;
double r1050197 = -2.0687874539246598e-76;
bool r1050198 = r1050196 <= r1050197;
double r1050199 = -0.5;
double r1050200 = c;
double r1050201 = r1050200 / r1050196;
double r1050202 = r1050199 * r1050201;
double r1050203 = 2.3609083740516956e+86;
bool r1050204 = r1050196 <= r1050203;
double r1050205 = -r1050196;
double r1050206 = r1050196 * r1050196;
double r1050207 = a;
double r1050208 = r1050207 * r1050200;
double r1050209 = r1050206 - r1050208;
double r1050210 = sqrt(r1050209);
double r1050211 = r1050205 - r1050210;
double r1050212 = 1.0;
double r1050213 = r1050212 / r1050207;
double r1050214 = r1050211 * r1050213;
double r1050215 = -2.0;
double r1050216 = 0.5;
double r1050217 = r1050207 * r1050216;
double r1050218 = r1050196 / r1050200;
double r1050219 = r1050217 / r1050218;
double r1050220 = fma(r1050215, r1050196, r1050219);
double r1050221 = r1050220 / r1050207;
double r1050222 = r1050204 ? r1050214 : r1050221;
double r1050223 = r1050198 ? r1050202 : r1050222;
return r1050223;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
if b_2 < -2.0687874539246598e-76Initial program 52.9
Taylor expanded around -inf 9.9
if -2.0687874539246598e-76 < b_2 < 2.3609083740516956e+86Initial program 13.1
rmApplied div-inv13.2
if 2.3609083740516956e+86 < b_2 Initial program 44.0
Taylor expanded around inf 9.6
Simplified4.0
Final simplification10.3
herbie shell --seed 2019170 +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))