\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -1.406599291770866912849299146668339118937 \cdot 10^{122}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\
\mathbf{elif}\;b_2 \le -3.517798769679198567266373905152163688501 \cdot 10^{-300}:\\
\;\;\;\;\frac{1}{\frac{a}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}\\
\mathbf{elif}\;b_2 \le 5.732888581164670930257747643857376081135 \cdot 10^{134}:\\
\;\;\;\;\frac{c}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}\\
\mathbf{else}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\end{array}double f(double a, double b_2, double c) {
double r24482 = b_2;
double r24483 = -r24482;
double r24484 = r24482 * r24482;
double r24485 = a;
double r24486 = c;
double r24487 = r24485 * r24486;
double r24488 = r24484 - r24487;
double r24489 = sqrt(r24488);
double r24490 = r24483 + r24489;
double r24491 = r24490 / r24485;
return r24491;
}
double f(double a, double b_2, double c) {
double r24492 = b_2;
double r24493 = -1.406599291770867e+122;
bool r24494 = r24492 <= r24493;
double r24495 = 0.5;
double r24496 = c;
double r24497 = r24496 / r24492;
double r24498 = r24495 * r24497;
double r24499 = 2.0;
double r24500 = a;
double r24501 = r24492 / r24500;
double r24502 = r24499 * r24501;
double r24503 = r24498 - r24502;
double r24504 = -3.5177987696791986e-300;
bool r24505 = r24492 <= r24504;
double r24506 = 1.0;
double r24507 = r24492 * r24492;
double r24508 = r24500 * r24496;
double r24509 = r24507 - r24508;
double r24510 = sqrt(r24509);
double r24511 = r24510 - r24492;
double r24512 = r24500 / r24511;
double r24513 = r24506 / r24512;
double r24514 = 5.732888581164671e+134;
bool r24515 = r24492 <= r24514;
double r24516 = -r24492;
double r24517 = r24516 - r24510;
double r24518 = r24496 / r24517;
double r24519 = -0.5;
double r24520 = r24519 * r24497;
double r24521 = r24515 ? r24518 : r24520;
double r24522 = r24505 ? r24513 : r24521;
double r24523 = r24494 ? r24503 : r24522;
return r24523;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -1.406599291770867e+122Initial program 51.8
Taylor expanded around -inf 2.8
if -1.406599291770867e+122 < b_2 < -3.5177987696791986e-300Initial program 8.2
rmApplied clear-num8.4
Simplified8.4
if -3.5177987696791986e-300 < b_2 < 5.732888581164671e+134Initial program 33.9
rmApplied flip-+33.9
Simplified16.6
rmApplied *-un-lft-identity16.6
Applied *-un-lft-identity16.6
Applied times-frac16.6
Simplified16.6
Simplified8.6
if 5.732888581164671e+134 < b_2 Initial program 62.2
Taylor expanded around inf 1.8
Final simplification6.4
herbie shell --seed 2019326
(FPCore (a b_2 c)
:name "quad2p (problem 3.2.1, positive)"
:precision binary64
(/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))