\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -7373025010395948:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le -2.3690761110420922 \cdot 10^{-106}:\\
\;\;\;\;1 \cdot \frac{\frac{0 + a \cdot c}{\sqrt{\mathsf{fma}\left(b_2, b_2, -a \cdot c\right)} - b_2}}{a}\\
\mathbf{elif}\;b_2 \le -2.48477194923176723 \cdot 10^{-177}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le 2445759453.4737968:\\
\;\;\;\;1 \cdot \frac{\left(-b_2\right) - \sqrt{\mathsf{fma}\left(b_2, b_2, -a \cdot c\right)}}{a}\\
\mathbf{else}:\\
\;\;\;\;-2 \cdot \frac{b_2}{a}\\
\end{array}double f(double a, double b_2, double c) {
double r16472 = b_2;
double r16473 = -r16472;
double r16474 = r16472 * r16472;
double r16475 = a;
double r16476 = c;
double r16477 = r16475 * r16476;
double r16478 = r16474 - r16477;
double r16479 = sqrt(r16478);
double r16480 = r16473 - r16479;
double r16481 = r16480 / r16475;
return r16481;
}
double f(double a, double b_2, double c) {
double r16482 = b_2;
double r16483 = -7373025010395948.0;
bool r16484 = r16482 <= r16483;
double r16485 = -0.5;
double r16486 = c;
double r16487 = r16486 / r16482;
double r16488 = r16485 * r16487;
double r16489 = -2.369076111042092e-106;
bool r16490 = r16482 <= r16489;
double r16491 = 1.0;
double r16492 = 0.0;
double r16493 = a;
double r16494 = r16493 * r16486;
double r16495 = r16492 + r16494;
double r16496 = -r16494;
double r16497 = fma(r16482, r16482, r16496);
double r16498 = sqrt(r16497);
double r16499 = r16498 - r16482;
double r16500 = r16495 / r16499;
double r16501 = r16500 / r16493;
double r16502 = r16491 * r16501;
double r16503 = -2.4847719492317672e-177;
bool r16504 = r16482 <= r16503;
double r16505 = 2445759453.473797;
bool r16506 = r16482 <= r16505;
double r16507 = -r16482;
double r16508 = r16507 - r16498;
double r16509 = r16508 / r16493;
double r16510 = r16491 * r16509;
double r16511 = -2.0;
double r16512 = r16482 / r16493;
double r16513 = r16511 * r16512;
double r16514 = r16506 ? r16510 : r16513;
double r16515 = r16504 ? r16488 : r16514;
double r16516 = r16490 ? r16502 : r16515;
double r16517 = r16484 ? r16488 : r16516;
return r16517;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
if b_2 < -7373025010395948.0 or -2.369076111042092e-106 < b_2 < -2.4847719492317672e-177Initial program 52.1
Taylor expanded around -inf 10.7
if -7373025010395948.0 < b_2 < -2.369076111042092e-106Initial program 38.6
rmApplied clear-num38.6
rmApplied fma-neg38.6
rmApplied *-un-lft-identity38.6
Applied *-un-lft-identity38.6
Applied times-frac38.6
Applied add-cube-cbrt38.6
Applied times-frac38.6
Simplified38.6
Simplified38.6
rmApplied flip--38.6
Simplified15.7
Simplified15.7
if -2.4847719492317672e-177 < b_2 < 2445759453.473797Initial program 12.3
rmApplied clear-num12.4
rmApplied fma-neg12.4
rmApplied *-un-lft-identity12.4
Applied *-un-lft-identity12.4
Applied times-frac12.4
Applied add-cube-cbrt12.4
Applied times-frac12.4
Simplified12.4
Simplified12.3
if 2445759453.473797 < b_2 Initial program 33.1
rmApplied clear-num33.2
Taylor expanded around 0 6.7
Final simplification10.7
herbie shell --seed 2020059 +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))